sql >> Database >  >> RDS >> Oracle

ADF-integratie met EBS

Ik heb een oplossing voor het integreren van de ADF-pagina met EBS en ook voor sessiebeheer.

Deze onderstaande link is nuttig voor mij.

http://mistech.pixnet.net/blog/post/365709524-adf-%E6%95%B4%E5%90%88%E6%96%BC -%28-integrate-%29-oracle-ebs-r12

Of voer onderstaande stap uit voor meer beschrijving.

Stap 01: Java-klassen maken.Java Class:ConnectionProvide, EBizUti, EBSWrapperFilter,Java Bean:UserInfo

1. ConnectionProvider.java

package com.oracle.view;

import java.sql.Connection;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

public class ConnectionProvider {
    private static DataSource ebsDS = null;
    static {
        try {
            Context ctx = new InitialContext();
            ebsDS = (DataSource) ctx.lookup("jdbc/TEST32");

            // your datasource jndi name as defined during configuration
            if (ctx != null)
                ctx.close();

        } catch (Exception e) {
            throw new RuntimeException(e);
            // means jndi setup is not correct or doesn't exist
        }
    }

    private ConnectionProvider() {
        super();
    }

    public static Connection getConnection() throws SQLException {
        if (ebsDS == null)
            throw new IllegalStateException(
                    "AppsDatasource is not properly initialized or available");
        return ebsDS.getConnection();
    }
}

PS:In de EBS-omgeving jdbc-modus om de databaseverbinding te verkrijgen, kunt u de weergave weblogic Services-> Gegevensbronnen openen, zoals:EBSDataSource JNDI:jdbc / TEST32, en kan worden geleerd om te implementeren op die ene host:oacore_cluster

2. EBizUtil.java

package com.oracle.view;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import oracle.apps.fnd.ext.common.EBiz;


public class EBizUtil {
    public EBizUtil() {
        super();
    }
    private static final Logger logger = Logger.getLogger(EBizUtil.class.getName());
    private static EBiz INSTANCE = null;
    static {
        Connection connection = null;
        try {
            connection = ConnectionProvider.getConnection();
            // DO NOT hard code applServerID for a real application
            // Get applServerID as CONTEXT-PARAM from web.xml or elsewhere
            INSTANCE = new EBiz(connection, "F1CB87199593E5F4E0431F030A0AD0AB31310251131793525291714692481335");
        } catch (SQLException e) {
            logger.log(Level.SEVERE, "SQLException while creating EBiz instance", e);
            throw new RuntimeException(e);
        } catch (Exception e) {
            logger.log(Level.SEVERE, "Exception while creating EBiz instance", e);
            throw new RuntimeException(e);
        } finally {
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
        }
    }

    public static EBiz getEBizInstance() {
        return INSTANCE;
    }    
}

PS:APPL_SERVER_ID kan worden verkregen onder de $ INST_TOP / appl / fnd / 12.0.0 / secure / TEST32.dbc EBS APP Server pathServer ID:APPL_SERVER_ID =F1CB87199593E5F4E0431F030A0AD0AB31310251131793525291714692481335 3. EBSWrapperFilter.java

package com.oracle.view;

import java.io.IOException;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import oracle.apps.fnd.ext.common.AppsRequestWrapper;
import oracle.apps.fnd.ext.common.AppsRequestWrapper.WrapperException;

public class EBSWrapperFilter implements Filter {
    public EBSWrapperFilter() {
        super();
    }


    private static final Logger logger = Logger.getLogger(EBSWrapperFilter.class.getName());

    public void init(FilterConfig filterConfig) {
        logger.info("Filter initialized ");
    }

    public void doFilter(ServletRequest request, ServletResponse response,  FilterChain chain) throws IOException,ServletException {
        AppsRequestWrapper wrapper = null;
        logger.info("-current URI =" + ((HttpServletRequest)request).getRequestURI());

        try {

            wrapper = new AppsRequestWrapper((HttpServletRequest)request, (HttpServletResponse)response, ConnectionProvider.getConnection(), EBizUtil.getEBizInstance());

        } catch (WrapperException e2) {
            logger.log(Level.SEVERE, "WrapperException error encountered ", e2);
            throw new ServletException(e2);
        } catch (SQLException e2) {
            logger.log(Level.SEVERE, "SQLException error encountered ", e2);
            throw new ServletException(e2);
        }
        try {
            logger.info("Created AppsRequestWrapper object." + " Continuing the filter chain.");
            chain.doFilter(wrapper, response);
            logger.info("- the filter chain ends");
        } finally {
            //AppsRequestWrapper caches a connection internally.
            //AppsRequestWrapper.getConnection()--returns this connection this connection can be used in doGet()/doPost() service layer
            //whenever our application requires a connection in order to service the current request.
            //When AppsRequestWrapper instance is in use, this connection should not be closed by other code.
            //At this point, we are done using AppsRequestWrapper instance so, as good practice, we are going to close (release) this connection now.
            if (wrapper != null) {
                try {
                    logger.info("- releasing the connection attached to the" + " current AppsRequestWrapper instance ");
                    wrapper.getConnection().close();
                } catch (SQLException e3) {
                    logger.log(Level.WARNING, "SQLException error while closing connection--", e3);
                    throw new ServletException(e3);
                }
            }
            wrapper = null;
        }
    }

    public void destroy() {
        logger.info("Filter destroyed ");
    }
}

4. UserInfo.java

package com.oracle.bean;

import java.util.Map;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import oracle.apps.fnd.ext.common.AppsRequestWrapper;
import oracle.apps.fnd.ext.common.Session;

public class UserInfo {
    private String user;
    private String userInfo;

    public UserInfo() {
        super();
    }


    public void setUser(String user) {
        this.user = user;
    }

    public String getUser() {
        return user;
    }


    public void beforePhase(PhaseEvent phaseEvent) {
        // Add event code here...
        AppsRequestWrapper wrappedRequest =
            (AppsRequestWrapper)FacesContext.getCurrentInstance().getExternalContext().getRequest();

        Session session = wrappedRequest.getAppsSession();

        setUser(session.getUserName());

        Map columns = session.getInfo();
        StringBuffer temp = new StringBuffer();
        temp.append("<table>");
        for (Object key : columns.keySet()) {
            temp.append("<tr>");
            temp.append("<td>");
            temp.append(key);
            temp.append("</td>");
            temp.append("<td>");
            temp.append(columns.get(key));
            temp.append("</td>");
            temp.append("</tr>");
        }
        temp.append("</table>");

        setUserInfo(temp.toString());

    }

    public void setUserInfo(String userInfo) {
        this.userInfo = userInfo;
    }

    public String getUserInfo() {
        return userInfo;
    }
}

Stap 02: Maak een weergave:userInfo.jspx in adfc-config.xml en stel Managed Beans in

Layout: PageGroupLayout: layout = vertical
       OutPutText: value = "Hello # {pageFlowScope.userInfoBean.user} !!"
InlineStyle = "font-size: medium; color: Red;"
       Separator
     OutPutText: value = "# User Info: <br> # {pageFlowScope.userInfoBean.userInfo}"
Escape = "false" inlineStyle = "font-size: medium;"

Instellingen op Oracle EBS:

Stap 01: Functie instellen:Menu:Verantwoordelijkheid:Functie WEI_ADFLAB_USERINFOProperties-Type Externe ADF ApplicationWebHTML-HTML Bel GWY.jsp?targetPage=faces/userInfo

Stap 02: Verantwoordelijkheid:Functioneel Beheerder instellingena. Kernservices → Profielen → Code:FND_EXTERNAL_ADF_URL → Gob. Klik vervolgens op de URL van de externe ADF-toepassing en druk op Profielwaarden definiëren

a. Klik op Profielwaarden definiëren → Verantwoordelijkheidb. Selecteer Verantwoordelijkheid &Waardec. Waarde:gastprogramma in het weblogic-pad, zoals:http://lnxap104:7214/ LAB_EBS-ViewController-context-root/ d. Druk op Bijwerken



  1. Hoe u een lijst met alle controlebeperkingen in de SQL Server-database kunt krijgen - SQL Server / TSQL-zelfstudie, deel 85

  2. Hoe verbinding maken met de SQL Server-database vanuit JavaScript in de browser?

  3. Kan geen tekst naar MySQL posten met Insert Into

  4. PostgreSQL:gegevens exporteren van SQL Server 2008 R2 naar PostgreSQL 9.5