Populating Address Book List and Creating the Data Control
In this section you will populate the address book list and create the data control.
- Add the following connection fields and constants to AddressBookDC.java - // Session private E1UserSessionBean userBean; private LoginEnvironment loginEnv; private boolean runningInJDEADFContainer = true; // Hard coded connection values. private static final String AIS_SERVER = "http://host:port"; private static final String USER_NAME = "username"; private static final String PASSWORD = "password"; private static final String DEVICE = "E1ADFApps"; private static final String ROLE = "role"; private static final String ENVIRONMENT = "environment";
- Add the code shown below to AddressBookDC.java: - public AddressBookDC() { ADFContext.getCurrent().getPageFlowScope().put("showDetail", "false"); String handshakeId = (String) ADFContext.getCurrent().getPageFlowScope().get("handshakeId"); if (handshakeId == null || (handshakeId != null && handshakeId.length() == 0)) { runningInJDEADFContainer = false; userBean = new E1UserSessionBean(AIS_SERVER, USER_NAME, PASSWORD, ENVIRONMENT, ROLE, DEVICE); } else { // Initialize application for about properties, only do this when running in the container E1AdfUtils.intializeAppInstance("/com/oracle/e1/E01012/"); } loginEnv = E1AdfUtils.getLoginEnvironment(userBean); if (loginEnv != null) { List<String> reqCapabilities = loginEnv.getRequiredCapabilities(); reqCapabilities.add("processingOption"); retrievePOValues(); } else { processConnectionException(); } } private void retrievePOValues() { try { // Retrieve E01012 proxy application's processing options String appName = (String) ADFContext.getCurrent().getPageFlowScope().get("appName"); String appVersion = (String) ADFContext.getCurrent().getPageFlowScope().get("appVersion"); ProcessingOptionRequest e01012PORequest = new ProcessingOptionRequest(loginEnv); if ((appName == null) || (appName.length() == 0)) { appName = "E01012"; } e01012PORequest.setApplicationName(appName); if ((appVersion == null) || (appVersion.length() == 0)) { appVersion = "ZJDE0001"; } e01012PORequest.setVersion(appVersion); String response = JDERestServiceProvider.jdeRestServiceCall(loginEnv, e01012PORequest, JDERestServiceProvider.POST_METHOD, JDERestServiceProvider.PO_SERVICE); ProcessingOptionsSet e01012POSet = loginEnv.getObjectMapper().readValue(response, ProcessingOptionsSet.class); if (e01012POSet != null) { p01012Version = (String) e01012POSet.getOptionValue("szP01012Version_1"); if (p01012Version == null) { p01012Version = "ZJDE0001"; } } else { p01012Version = "ZJDE0001"; } // Retrieve Address Book (P01012) processing options. ProcessingOptionRequest p01012PORequest = new ProcessingOptionRequest(loginEnv); p01012PORequest.setApplicationName("P01012"); p01012PORequest.setVersion(p01012Version); String response1 = JDERestServiceProvider.jdeRestServiceCall(loginEnv, p01012PORequest, JDERestServiceProvider.POST_METHOD, JDERestServiceProvider.PO_SERVICE); ProcessingOptionsSet p01012POSet = loginEnv.getObjectMapper().readValue(response1, ProcessingOptionsSet.class); if (p01012POSet != null) { hideTax = (String) p01012POSet.getOptionValue("HideTax_4"); displaySupplierMaster = (String) p01012POSet.getOptionValue("GoToSupplierMaster_5"); displayCustomerMaster = (String) p01012POSet.getOptionValue("GoToCustomerMaster_6"); searchTypeDefault = (String) p01012POSet.getOptionValue("SearchTypeDefault_7"); displayCSMS = (String) p01012POSet.getOptionValue("GoToCSMS_8"); p0100041Version = (String) p01012POSet.getOptionValue("Version_9"); selfServiceMode = (String) p01012POSet.getOptionValue("cSelfServiceMode_10"); typeCode = (String) p01012POSet.getOptionValue("cTypeCode_11"); postalCodeValidate = (String) p01012POSet.getOptionValue("cPostalCodeValidate_12"); postalAddressRetrieval = (String) p01012POSet.getOptionValue("cPostalAddressRetrieval_13"); p03013Version = (String) p01012POSet.getOptionValue("szCustMasterVersion_VER_14"); p04012Version = (String) p01012POSet.getOptionValue("szSuppMasterVersion_VER_15"); } } catch (CapabilityException e) { // Processing Option cability is not supported on AIS. Use default search type. searchTypeDefault = "E"; } catch (JDERestServiceException e) { processErrorException(JDERestServiceProvider.handleServiceException(e)); } catch (Exception e) { processErrorException(e); } } public void retrieveAddressBookList() { if (loginEnv != null) { FormRequest formRequest = new FormRequest(loginEnv); formRequest.setFormName("P01012_W01012B"); formRequest.setVersion(p01012Version); formRequest.setMaxPageSize("600"); formRequest.setFormServiceAction("R"); FSREvent w01012BFSREvent = new FSREvent(); // Set search type based on the processing option of P01012. w01012BFSREvent.setFieldValue("54", searchTypeDefault); String alphaNameFilter = (String) ADFContext.getCurrent().getPageFlowScope().get("alphaNameFilter"); if (alphaNameFilter != null && alphaNameFilter.trim().length() > 0) { w01012BFSREvent.setFieldValue("58", "*" + alphaNameFilter + "*"); } else { w01012BFSREvent.setFieldValue("58", "**"); } w01012BFSREvent.doControlAction("15"); // Trigger the Find Button formRequest.addFSREvent(w01012BFSREvent); // Add the events to the form request try { String response = JDERestServiceProvider.jdeRestServiceCall(loginEnv, formRequest, JDERestServiceProvider.POST_METHOD, JDERestServiceProvider.FORM_SERVICE_URI); P01012_W01012B_FormParent temp_p01012_W01012B_FormParent = loginEnv.getObjectMapper().readValue(response, P01012_W01012B_FormParent.class); addressBook.getFs_P01012_W01012B().getData().getGridData().setRowset (temp_p01012_W01012B_FormParent.getFs_P01012_W01012B().getData().getGridData().getRowset()); if (addressBook.getFs_P01012_W01012B().getData().getGridData().getRowset().size() > 0) { ADFContext.getCurrent().getPageFlowScope().put("selectedRowKey", "0"); // Display Address Book detail for first record in list. processSelectedAddress(0); } else { // Clear detail fields. addressBookDetail.clear(); ADFContext.getCurrent().getPageFlowScope().put("showDetail", "false"); } } catch (JDERestServiceException e) { processErrorException(JDERestServiceProvider.handleServiceException(e)); } catch (IOException e) { processErrorException(e); } } else { processConnectionException(); } } public void processSelectedAddress(int rowIndex) { if (rowIndex >= 0) { selectedAddressBook = addressBook.getFs_P01012_W01012B().getData().getGridData().getRowset().get(rowIndex); setSelectedAddressNumber(selectedAddressBook.getMnAddressNumber_19().getValue()); ADFContext.getCurrent().getPageFlowScope().put("showDetail", "true"); } else { ADFContext.getCurrent().getPageFlowScope().put("showDetail", "false"); } retrieveAddressBookDetail(selectedAddressNumber); } private void retrieveAddressBookDetail(String addressNumber) { if (loginEnv != null) { FormRequest formRequest = new FormRequest(loginEnv); formRequest.setFormName("P01012_W01012A"); formRequest.setVersion("ZJDE0001"); formRequest.setFormServiceAction("R"); formRequest.addToFISet("12", addressNumber); try { String response = JDERestServiceProvider.jdeRestServiceCall(loginEnv, formRequest, JDERestServiceProvider.POST_METHOD, JDERestServiceProvider.FORM_SERVICE_URI); P01012_W01012A_FormParent tempDetail = loginEnv.getObjectMapper().readValue(response, P01012_W01012A_FormParent.class); if (tempDetail != null) { P01012_W01012A_FormData form = tempDetail.getFs_P01012_W01012A().getData(); setSelectedAddressNumber(form.getTxtAddressNumber_21().getValue()); addressBookDetail.setAddressNumber(form.getTxtAddressNumber_21().getValue()); addressBookDetail.setAlphaName(form.getTxtAlphaName_28().getValue()); addressBookDetail.setMailingName(form.getTxtMailingName_38().getValue()); addressBookDetail.setAddress(form.getTxtAddressLine1_40().getValue()); addressBookDetail.setCity(form.getTxtCity_52().getValue()); addressBookDetail.setState(form.getTxtState_54().getValue()); addressBookDetail.setZipCode(form.getTxtPostalCode_50().getValue()); addressBookDetail.setTaxId(form.getTxtTaxID_34().getValue()); addressBookDetail.setBusinessUnit(form.getTxtBusinessUnit_62().getValue()); addressBookDetail.setSearchType(form.getTxtSearchType_36().getValue()); } else { addressBookDetail.clear(); } } catch (JDERestServiceException e) { processErrorException(JDERestServiceProvider.handleServiceException(e)); } catch (IOException e) { processErrorException(e); } } else { processConnectionException(); } } public void clearFields() { addressBookDetail.clear(); } public void launchE1App() { E1FormInterconnect form = new E1FormInterconnect(); form.setApplication("P01012"); form.setForm("W01012B"); form.setVersion("ZJDE0001"); form.addFormInterconnectValue("2", "C"); E1AdfUtils.launchE1Application(form); } private void processErrorException(String msg) { displayMessage("Error", msg); } private void processErrorException(Exception e) { displayMessage("Error", e.getMessage()); } private void processConnectionException() { displayMessage("Connection Error", "Connection failed. Please contact your system administrator"); } private void displayMessage(String title, String msg) { if (runningInJDEADFContainer) { E1AdfUtils.addErrorMessage(msg); E1AdfUtils.launchMessagePopup(); } else { ELContext elCtxt = ADFContext.getCurrent().getELContext(); ExpressionFactory expFactory = ADFContext.getCurrent().getExpressionFactory(); ValueExpression ve = expFactory.createValueExpression(elCtxt, "#{addressBookListenerBean}", Object.class); if (ve.getValue(elCtxt) != null) { MethodExpression me = expFactory.createMethodExpression(elCtxt, "#{addressBookListenerBean.displayLocalMessage}", Void.class, new Class[] {String.class, String.class}); me.invoke(elCtxt, new Object[] {title, msg}); } } }
- Right-click the AddressBookDC in the Projects Panel and select Create Data Control. 
- Accept the defaults and click Next, Next, and Finish.