F110 debug - exit FEDI0003

My apologies in advance, as this topic has been posted before. I do realize that there are quite a few threads on this already on the forum, however most, if not all previous postings, don't list a definitive answer aside from 'Thanks, solved problem'. That being said, here is my question:
I am looking to be able to change values in IDoc PEXR2002 prior to the document being created.
I have done the following steps:
1. Create project in CMOD, and activated the following enhancements: FEDI0002 (EXIT_SAPLIEDP_101), FEDI0003 (EXIT_SAPLIEDP_002), FEDI0004 (EXIT_SAPLIEDP_902). Within the code of each exit, I have inserted 'BREAK-POINT' in each. I have even tried being more specific in my code by specifying segment name. All are exits are active.
2. Create entries in table 'FEDICUS' for message type PAYEXT, basic type PEXR2002, and listed all segments of that Idoc. It is my understanding that entries for selected segments must exist in this table in order for the user-exit to get called.
In running multiple payment runs via F110 (interactively), none of my break-points will activate. I have tried running F110 in background, as well as F110S in both foreground/background with the same results.
I have already checked notes 1248868 and 937966. Neither has helped resolve this issue for me.
Anyone else have any ideas or hopefully an answer?
Thanks.

Thanks again for your input Vishnu and everyone.
From what I have read in some SAP notes (note 1248868 to be exact) as well as other postings, it seems like some are saying EXIT_SAPLIEDP_002 is the correct exit to use, however you are saying EXIT_SAPLIEDP_902 is the correct one. To be thorough in my tests, I decided to place the same code in both of them and try it out. Here is what I put in:
IF segment_name = 'E1EDKU3'.
  DATA ls_e1idku3 LIKE e1idku3.
  DATA: i TYPE i.
  DESCRIBE TABLE edidd_table LINES i.
  IF edidd_table-segnam = 'E1EDKU3'.
    ls_e1idku3 = edidd_table-sdata.
    IF ls_e1idku3-pairzawe = 'A'.
      ls_e1idku3-pairzawe = 'D'.
      edidd_table-sdata = ls_e1idku3.
      MODIFY edidd_table INDEX i.
    ENDIF.
  ENDIF.
ENDIF.
Essentially, I am trying to change the value for payment method from one value to another. I see the exit getting called when I set an external breakpoint at my top IF statement, however the underlying code gets skipped over, even though the condition has been met.
Do you or anyone see any issues with my logic here?
Thanks!

Similar Messages

  • Vendor name should be updated in F110 (User exit by substituion)

    Hello all,
    I am  doing payments for RTGS/NEFT through F110, BSEG-SGTXT should be filled with vendor name.
    I tried this by substitution at acll up point 2 in OBBH by using User Exit. In user Exit we have written coading as Take BSEG-LIFNR where Account Type = K, go to LFA1 where BSEG-LIFNR=LFA1-LIFNR, Pick NAME1 for that LIFNR, & print that NAME1 in BSEG-SGTXT.
    Now problem is, substitution is trigring but it is substituting BSEG-SGTXT by LFA1-NAME1 only for 1st line where account type = K (i.e Vendor Line item). System is not printing same NAME1 to the corresponding line item (i.e Bank Line item).
    We want NAME1 at Bank Line.. Problem F110 runs at background, due to which we are not able to set any breakpoints & not able to do debuging also.
    Regards,
    Sagar

    Here is what you can do..
    In line item only one line will have vendor line item which will contain vendor number...In substituion it processes line by line...So for second line you need to store the vendor number of first line may be by import/export and than update second line... ?You can also process this in foreground by not doing the payment run in F110 and porcess it individually via the program.
    Thanks
    Nabheet

  • F110  BADI/exit/BTE

    Hi All,
    My requirement is to is to trigger work flow after payment run F110 is success full.
    I know that thers is no standard workflow for the same so, i have to define my own and call from there..
    My question: Is there any exit/BADI/ Substitution to stop the Payment run program
    After payment button executed so that i can able to get that data and send it to work flow. Is yes please let me know some details..
    Thx

    these are teh badi's
    FI_F110_SCHEDULE_JOB
    Exits
    FDTAX001  Enhancement to Transaction FDTA (event after the downlo
    FEDI0002  Function exits for EDI DOCS in FI - Incoming pyt adv.no
    FEDI0003  Function exits for EDI docs in FI - Save PEXR segments
    FEDI0004  Function exits for EDI docs in FI - particular events
    FEDI0006  Function Exits for EDI-docs in FI: Save IDCR Segments
    RFFOX003  Frame for user exit RFFOX003 (in program RFFOM100)
    RFFOX041  Framework for user exit RFFOX041 (in program RFFOBE_I)
    RFFOX042  Framework for user exit RFFOX042 (in program RFFOBE_E)
    RFFOX043  Framework for user exit RFFOX043 (in program RFFOBE_D)
    RFFOX061  Frame for user exit RFFOX061 (in program RFFOCH_P)
    RFFOX062  Frame for user exit RFFOX062 (in program RFFOCH_P)
    RFFOX063  Frame for user exit RFFOX063 (in program RFFOCH_P)
    RFFOX064  Frame for user exit RFFOX064 (in program RFFOCH_P)
    RFFOX065  Frame for user exit RFFOX065 (in program RFFOCH_P)
    RFFOX066  Frame for user exit RFFOX066 (in program RFFOCH_P)
    RFFOX071  Frame for user exit RFFOX071 (in program RFFOCH_U)
    RFFOX072  Frame for user exit RFFOX072 (in program RFFOCH_U)
    RFFOX073  Frame for user exit RFFOX073 (in program RFFOCH_U)
    RFFOX074  Frame for user exit RFFOX074 (in program RFFOCH_U)
    RFFOX075  Frame for user exit RFFOX075 (in program RFFOCH_U)
    RFFOX081  Frame for user exit RFFOX081 (in program RFFOF__T)
    RFFOX082  Frame for user exit RFFOX082 (in program RFFOF__T)
    RFFOX100  Frame for user exit RFFOX100 (in program RFFOUS_T)
    RFFOX101  Frame for user exit RFFOX101 (in program RFFOUS_T)
    RFFOX102  Frame for user exit RFFOX102 (in program RFFOUS_T)
    RFFOX103  Frame for user exit RFFOX103 (in program RFFOUS_T)
    RFFOX104  user exit
    RFFOX105  Frame for user exit RFFOX105 (in program RFFOUS_T)
    RFFOX200  Frame for user exit RFFOX200 (in program RFFONZ_T)
    RFFOX210  Frame for user exit RFFOX210 (in program RFFOAU_T)
    RFFOX211  Frame for user exit RFFOX211 (in program RFFONZ_T)
    RFFOX230  General program for user exit RFFOX230 (in program RFFO
    RFFOX240  Enhancement for User Exit 240 (RFFOAT_P)
    RFFOX250  Enhancement for User Exit 250 (RFFODK_E)
    RFFOX901  Framework for user exit RFFOX901 (in program RFFOM100)
    RFFOX902  Framework for user exit RFFOX902 (in program RFFOM100)

  • F110S - debugging - Idoc basic type PEXR2002

    Hi,
    i'm trying to debug F110S and its not stopping in FEDI0003 routines. am i missing something.
    i have to populate bank details in this  Idoc (basic type pexr2002 and message type PAYEXT)
    please let me know.
    Thanks.
    Edited by: vij k on Aug 5, 2009 9:51 PM

    figured it out. Thanks.

  • Payment program F110: User Exit/BAPI to block/unblock payments

    Hi!
    I need to block some documents when the payment occurs (F110)
    and in the end I need to unblock then. Seams to me than I have to modify the value of field BSEG-ZLSPR.
    The problem is that I try to find some User Exit ou BAPI by various ways
    but I find none.
    Can anyone help me?
    Thanks a lot.
    Rui

    Thanks Savitha.
    I will analyse your suggestion.
    What I need is:
    1-Enter t-code F110
    2-Fill the necessary fields and click in Proposal to execute the proposal.
    3-If everything id ok, the user clicks in Payments to execute the payment.
    This is the “normal” execution.
    What I need in the step 3 <b>in the beginning</b>, block some payments
    (based in some parameters) – this to prevent of executing the marked payments.
    And <b>in the end</b> unblock the blocked payments (return to original situation)
    Can you give me any more suggestion?
    Thanks!
    Rui

  • Payment  transaction  F110 user exits

    Hi,
    We are running the FI payment program tcode(F110) to download the payment data using DME engine.We will be using SAP XI 3.0 to send the data from SAPR/3(enterprise edition) to an external system.Instead of downloading the data as a file,we want to send the payment data to XI using ABAP Proxy. This will enable a secure way of sending the data.
    Now the question Is there any User exits in the Standard SAP payment program where we can call the ABAP proxy to send the data to XI.The user exit should have access to the payment data before it is downloaded in to the file and obviously it should stop the downloading of the data into file and send data to XI.
    If any of the forum members have used user exits in the FI payment program,please share your experience.
    Thanks in advance,
    Leo

    Hi,
    one point is open FI (TA FIBF and BF34)
    -> process 1610 - 2060
    look here:
    <a href="http://help.sap.com/saphelp_47x200/helpdata/EN/cb/4104aadf2b11d3a550444553540000/frameset.htm">Data Medium Exchange Engine</a>
    regards Andreas

  • F110 User Exit: Include ZXTDAU01

    Before a refresh I added code to the Include mentioned.However, I cannot find the User Exit in SMOD to activate the code in CMOD. I know to run the Find User exit utility for F110, but I do not see this user Exit listed. Is there a way, table?, I can find the User Exit I re-coded EXIT_SAPMFDTA_001(ZXTDAU01), in a table that would link me to the SMOD or other data so I can activate the User Exit?
       Thank-You.

    go to t-code Se15-->expand the enhacement tab-->enter userexit                
                                 (EXIT_SAPMFDTA_001) or Include ZXTDAU01 ..under exit name and
                               execute you will get the list of Implementataions...
    All the User exits are stored in Table MODSAP..
    Prabhudas

  • F110 exits to update REGUP table

    Hi All,
    1) In F110 tcode how REGUP table gets updated ?
    2) In F110 tcode in which exit I can populate REGUP table?
    need urgently .
    Thanks in advance
    Regards,
    Amit

    check the below link for a thread which discuss similar requirement and has all the user exits in F110.
    F110 User Exit -Update Custom Table
    Mathews

  • Bex Exit variable with workbook

    Hi experts,
    I've defined a query that uses an exit variable which select a specific range of customers.
    When I execute the query the variable is populated with correct values.
    Then I saved this query as workbook; but when I execute the workbook, the selection is not taken into account; it's as the exit is ignored.
    When executing the workbook I 've got an information message as follow:
    "The Can be changed in query navigation property has been set for variable VACLCONSID, characteristic 0BILLTOPRTY. However, the variable is used in the query in such a way, that the system is unable to apply this change-option"
    But in my query definition for VACLCONSID, flag "can be changed in query navigation" is't checked.
    Moreover I can't debug exit ZXRSRU01 with a workbook.
    Any ideas
    Thanks in advance
    Thierry

    Hi Radha,
    thanks for your reply.
    My exit variable depends on a customer variable which is filled during variables screen processing
    User selects a period, and exit defines customers selection with this information
    I use i_step= 2 in exit ZXRSRU01
    No other parameters are filled in the workbook by user
    Regards
    Thierry

  • MCB2300 Run Debug Failed

     Can you tell me what the following error message means
    uVision status : Run/Debug failed
    Detail: [UVSC_DBG_START_EXECUTION, MSG: 0x2002, STATUS: 0xB] (11)
    Thanks,
    Richard

    "Operation not possible when target is executing"
    However, the code may be returned in response to many UVSOCK messages.
    Perhaps you got the mesage when you tryed to debug an application while another was already in progress, but LabVIEW sends messages in proper order (e.g. stop debug, exit debug, enter debug, etc.).
    I am wandering what version are you using?

  • Debugging off from SM50

    HI,
    I pulled the background job to debugging session from SM50 transaction. Now I ahve to again put the debugging session back to background job. If I do F8 session gets terminates becasue program is running in foreground mode and Dialogue mode has linitataion.
    Can anyone suggest me as to how do I put the debugging session to background job in SM50?
    Thanks in advance.
    Regards,
    sanjay

    Hi Sanjay,
    When I debug like you said I finish the debugging with the steps below:
    - Delete all break-points (breakpoints - Delete all)
    - Click F6 (just one step)
    - Click F8 (back to background)
    On classic debug, the GUI debug close itself on F8, on the new debug I need Debug - Exit.
    BTW: What is the dump that you are facing ?
    Regards, Fernando Da Ros

  • Badi required for the program RFFOEDI1

    Hello friends
    when i assigned the variant EDI_CHECK to the existing program in F110 Tcode one outbound idoc was generated with the message type PAYEXT and idoc type PEXR2002. Now i want to extend this idoc with 2 custom segments.I need to write the code in user-exits or Badis for these custom segments.
    please help me on this issue, is there any badis or exits for idoc extension.
    Thanks n Regards
    Naresh

    Hi Naresh,
       Exit FEDI0003 available for your requirement.
    Please check.
    Regards,
    Suhas

  • Connection pool for ldap

    Hi
    My application is an interface to ldap directory. I have not used any ldap open source api to retrieve data from ldap. I have written connection pool that will help the application to connect to the ldap. It's working fine, but it's creating threads which are not invited.
    ConnectionPool class takes care of the connection storage and creation, while Housekeeping thread relases these connection when idle after a given time.
    Can someone please help in finding the problem in the code that creates additional threads.
    package com.ba.cdLookup.manager;
    import com.ba.cdLookup.exception.CDLookupException;
    import com.ba.cdLookup.server.CdLookupProperties;
    import java.util.Vector;
    import javax.naming.Context;
    import javax.naming.NamingException;
    public class HouseKeeperThread extends Thread {
             * Apache Logger to log erro/info/debug statements.
        protected static org.apache.commons.logging.Log log = org.apache.axis.components.logger.LogFactory
             .getLog(HouseKeeperThread.class.getName());
        private static HouseKeeperThread houseKeeperThread;
             * Close all connections existing.
             * @param connections
             *                void
        private void closeConnections(Vector connections) {
         String methodIdentifier = "closeConnections";
         int numOfConn = connections.size();
         try {
             for (int i = 0; i < numOfConn; i++) {
              Context context = (Context) connections.get(i);
              if (context != null) {
                  context.close();
                  context = null;
                  connections.remove(i);
                  numOfConn--;
                  log.info(" connection name:" + context
                       + " removed. Threadcount =" + (connections.size()));
         } catch (NamingException e) {
             String errMsg = "CDLdapBuilder connect() - failure while releasing connection "
                  + " Exception is " + e.toString();
             log.error(errMsg);
         } catch (Exception e) {
             String errMsg = "CDLdapBuilder connect() - failure while releasing connection "
                  + " Exception is " + e.toString();
             log.error(errMsg);
             * Thread run method
        public void run() {
         String methodIdentifier = "run";
         try {
             while(true){
              log.debug("house keeping :" + this + " ---sleep");
              //sleep(100000);
              log.debug("house keeping :" + this + " startd after sleep");
               sleep(CdLookupProperties.getHouseKeepConnectionTime());
              ConnectionPool connectionPool = ConnectionPool
                   .getConnectionPool();
              Vector connList = connectionPool.getAvailableConnections();
              closeConnections(connList);
         } catch (CDLookupException cde) {
             log.error(methodIdentifier + " " + cde.getStackTrace());
         } catch (InterruptedException ie) {
             log.error(methodIdentifier + " " + ie.getStackTrace());
         * @param connectionPool
         * @return
         * Thread
        public static Thread getInstance() {
         if(houseKeeperThread==null){
             houseKeeperThread = new HouseKeeperThread();
         return houseKeeperThread ;
    package com.ba.cdLookup.manager;
    import com.ba.cdLookup.exception.CDLookupException;
    import com.ba.cdLookup.server.CdLookupProperties;
    import com.ba.cdwebservice.schema.cdLookupPacket.LookupFailureReasons;
    import java.util.Properties;
    import java.util.Vector;
    import javax.naming.Context;
    import javax.naming.NamingException;
    import javax.naming.directory.DirContext;
    import javax.naming.directory.InitialDirContext;
    * ConnectionPool class manages, allocates LDAP connections. It works as a lazy
    * binder and retrieves connections only when required. It doesn't allow
    * connection greater then the maximum connection stated.
    * To retrieve a connection the singelton method getConnectionPool is to used,
    * which retruns thread safe singleton object for the connection.
    public class ConnectionPool implements Runnable {
        private int initialConnections = 0;
        private int maxConnections = 0;
        private boolean waitIfBusy = false;
        private Vector availableConnections, busyConnections;
        private boolean connectionPending = false;
        private static int threadCount = 0;
             * classIdentifier
        private final String classIdentifier = "ConnectionPool";
             * Apache Logger to log erro/info/debug statements.
        protected static org.apache.commons.logging.Log log = org.apache.axis.components.logger.LogFactory
             .getLog(CDLdapBuilder.class.getName());
             * To get the attribute a systemaccessfor out of the search result
        private String vendorContextFactoryClass = "com.sun.jndi.ldap.LdapCtxFactory";// "com.ibm.jndi.LDAPCtxFactory";
             * context factory to use
        private String ldapServerUrl = "LDAP://test.ldap.com"; // default ldap
             * server live used by default
        private String searchBase;
             * environment properties.
        private Properties env;
             * DirContext
        private javax.naming.directory.DirContext ctx;
             * default search base to be used in Corporate Directory searches
        private String defaultSearchBase = "dc=Pathway";
             * search criteria
        private String searchAttributes;
             * search filter to retrieve data from CD
        private String searchFilter;
             * CorporateDirectoryLookup Constructor
             * <p>
             * loads the setup parameters from the properties file and stores them
             * Makes a connection to the directory and sets default search base
             * @throws CDLookupException
             * @throws CDLookupException
        private ConnectionPool() throws CDLookupException {
         this.maxConnections = CdLookupProperties.getMaxConnection();// maxConnections;
         this.initialConnections = CdLookupProperties.getInitialConnection();
         this.waitIfBusy = CdLookupProperties.isWaitIfBusy();
         this.searchBase = CdLookupProperties.getDefaultSearchBase();
         //for local env testing
    //      this.maxConnections = 5;
    //      this.initialConnections = 1;
    //      this.waitIfBusy = true;
             * For keeping no of connections in the connection pool if
             * (initialConnections > maxConnections) { initialConnections =
             * maxConnections; }
         availableConnections = new Vector(maxConnections);
         busyConnections = new Vector(maxConnections);
         for (int i = 0; i < maxConnections; i++) {
             availableConnections.add(makeNewConnection());
             *  ConnectionPoolHolder provide Thread safe singleton
             *         instance of ConnectionPool class
        private static class ConnectionPoolHolder {
             * connection pool instance
         private static ConnectionPool connectionPool = null;
             * If no ConnectionPool object is present, it creates instance of
             * ConnectionPool class and initiates thread on that.
             * @return ConnectionPool Returns singleton object of ConnectionPool
             *         class.
             * @throws CDLookupException
         private static ConnectionPool getInstance() throws CDLookupException {
             if (connectionPool == null) {
              connectionPool = new ConnectionPool();
              new Thread(connectionPool).start();
              // Initiate house keeping thread.
              HouseKeeperThread.getInstance().start();
             return connectionPool;
             * Returns singleton object of ConnectionPool class.
             * @return ConnectionPool
             * @throws CDLookupException
        public static ConnectionPool getConnectionPool() throws CDLookupException {
         return ConnectionPoolHolder.getInstance();
             * getConnection retrieves connections to the corp directory. In case
             * there is no available connections in the pool then it'll try to
             * create one, if the max connection limit for the connection pool
             * reaches then this waits to retrieve one.
             * @return Context
             * @throws CDLookupException
        public synchronized Context getConnection() throws CDLookupException {
         String methodIdentifier = "getConnection";
         if (!availableConnections.isEmpty()) {
             int connectionSize = availableConnections.size() - 1;
             DirContext existingConnection = (DirContext) availableConnections
                  .get(connectionSize);
             availableConnections.remove(connectionSize);
                     * If connection on available list is closed (e.g., it timed
                     * out), then remove it from available list and repeat the
                     * process of obtaining a connection. Also wake up threads that
                     * were waiting for a connection because maxConnection limit was
                     * reached.
             if (existingConnection == null) {
              notifyAll(); // Freed up a spot for anybody waiting
              return (getConnection());
             } else {
              busyConnections.add(existingConnection);
              return (existingConnection);
         } else {
                     * Three possible cases: 1) You haven't reached maxConnections
                     * limit. So establish one in the background if there isn't
                     * already one pending, then wait for the next available
                     * connection (whether or not it was the newly established one).
                     * 2) You reached maxConnections limit and waitIfBusy flag is
                     * false. Throw SQLException in such a case. 3) You reached
                     * maxConnections limit and waitIfBusy flag is true. Then do the
                     * same thing as in second part of step 1: wait for next
                     * available connection.
             if ((totalConnections() < maxConnections) && !connectionPending) {
              makeBackgroundConnection();
             } else if (!waitIfBusy) {
              throw new CDLookupException("Connection limit reached", 0);
                     * Wait for either a new connection to be established (if you
                     * called makeBackgroundConnection) or for an existing
                     * connection to be freed up.
             try {
              wait();
             } catch (InterruptedException ie) {
              String errMsg = "Exception raised =" + ie.getStackTrace();
              log.error(errMsg);
              throw new CDLookupException(classIdentifier, methodIdentifier,
                   errMsg, ie);
             // connection freed up, so try again.
             return (getConnection());
             * You can't just make a new connection in the foreground when none are
             * available, since this can take several seconds with a slow network
             * connection. Instead, start a thread that establishes a new
             * connection, then wait. You get woken up either when the new
             * connection is established or if someone finishes with an existing
             * connection.
        private void makeBackgroundConnection() {
         connectionPending = true;
         try {
             Thread connectThread = new Thread(this);
             log.debug("background thread created");
             connectThread.start();
         } catch (OutOfMemoryError oome) {
             log.error("makeBackgroundConnection ="+ oome.getStackTrace());
             * Thread run method
        public void run() {
         String methodIdentifier = "run";
         try {
             Context connection = makeNewConnection();
             synchronized (this) {
              availableConnections.add(connection);
              connectionPending = false;
              notifyAll();
         } catch (Exception e) { // SQLException or OutOfMemory
             // Give up on new connection and wait for existing one
             // to free up.
             String errMsg = "Exception raised =" + e.getStackTrace();
             log.error(errMsg);   
             * This explicitly makes a new connection. Called in the foreground when
             * initializing the ConnectionPool, and called in the background when
             * running.
             * @return Context
             * @throws CDLookupException
        private Context makeNewConnection() throws CDLookupException {
         String methodIdentifier = "makeNewConnection";
         Context context = null;
         env = new Properties();
         log.debug("inside " + methodIdentifier);
         try {
             env.put(Context.INITIAL_CONTEXT_FACTORY,
                  getVendorContextFactoryClass());
             env.put(Context.PROVIDER_URL, getLdapServerUrl());
             env.put("com.sun.jndi.ldap.connect.pool", "true");
             context = new InitialDirContext(env);
         } catch (NamingException e) {
             String errMsg = "CDLdapBuilder connect() - failure while attempting to contact "
                  + ldapServerUrl + " Exception is " + e.toString();
             throw new CDLookupException(classIdentifier, methodIdentifier,
                  errMsg, e, LookupFailureReasons.serviceUnavailable);
         } catch (Exception e) {
             String errMsg = "CDLdapBuilder connect() - failure while attempting to contact "
                  + ldapServerUrl + " Exception is " + e.toString();
             throw new CDLookupException(classIdentifier, methodIdentifier,
                  errMsg, e, LookupFailureReasons.serviceUnavailable);
         log.info("new connection :" + (threadCount++) + " name =" + context);
         log.debug("exit " + methodIdentifier);
         return context;
             * releases connection to the free pool
             * @param context
        public synchronized void free(Context context) {
         busyConnections.remove(context);
         availableConnections.add(context);
         // Wake up threads that are waiting for a connection
         notifyAll();
             * @return int give total no of avail connections.
        public synchronized int totalConnections() {
         return (availableConnections.size() + busyConnections.size());
             * Close all the connections. Use with caution: be sure no connections
             * are in use before calling. Note that you are not <I>required</I> to
             * call this when done with a ConnectionPool, since connections are
             * guaranteed to be closed when garbage collected. But this method gives
             * more control regarding when the connections are closed.
        public synchronized void closeAllConnections() {
         closeConnections(availableConnections);
         availableConnections = new Vector();
         closeConnections(busyConnections);
         busyConnections = new Vector();
             * Close all connections existing.
             * @param connections
             *                void
        private void closeConnections(Vector connections) {
         String methodIdentifier = "closeConnections";
         try {
             for (int i = 0; i < connections.size(); i++) {
              Context context = (Context) connections.get(i);
              if (context != null) {
                  log.info(" connection name:" + context
                       + " removed. Threadcount =" + (threadCount++));
                  context.close();
                  context = null;
         } catch (NamingException e) {
             String errMsg = "CDLdapBuilder connect() - failure while attempting to contact "
                  + ldapServerUrl + " Exception is " + e.toString();
             log.error(errMsg);
        public synchronized String toString() {
         String info = "ConnectionPool(" + getLdapServerUrl() + ","
              + getVendorContextFactoryClass() + ")" + ", available="
              + availableConnections.size() + ", busy="
              + busyConnections.size() + ", max=" + maxConnections;
         return (info);
             * @return the defaultSearchBase
        public final String getDefaultSearchBase() {
         return defaultSearchBase;
             * @param defaultSearchBase
             *                the defaultSearchBase to set
        public final void setDefaultSearchBase(String defaultSearchBase) {
         this.defaultSearchBase = defaultSearchBase;
             * @return the ldapServerUrl
        public final String getLdapServerUrl() {
         return ldapServerUrl;
             * @param ldapServerUrl
             *                the ldapServerUrl to set
        public final void setLdapServerUrl(String ldapServerUrl) {
         this.ldapServerUrl = ldapServerUrl;
             * @return the vendorContextFactoryClass
        public final String getVendorContextFactoryClass() {
         return vendorContextFactoryClass;
             * @param vendorContextFactoryClass
             *                the vendorContextFactoryClass to set
        public final void setVendorContextFactoryClass(
             String vendorContextFactoryClass) {
         this.vendorContextFactoryClass = vendorContextFactoryClass;
         * @return the availableConnections
        public final Vector getAvailableConnections() {
            return availableConnections;
    }

    Hi,
    As the connection pool implmentation has the bug of not extending more than the min size, workaround I use is MIN_CONN=100 and MAX_CONN=101,and just waiting for the bug to get fixed. (using Netscape SDK for java4.0)

  • Aging report in FIAR

    I have created an overdue report from 0FIAR_O03 ODS.Currently the report using variable offsets to find out overdue amounts < 180 and > 180 days.
    Now the user wants that instead of hardcoding 180 days, he wants to include the number of days in the selection screen.
    For ex..if user enters 30 days in selection screen the report should get 30 days overdue report.
    As per my understanding we cannot use varible offsets dynamically using selection variable.
    Pls help me with logic to develop this report.
    Thanks in advance..
    Regards
    Soujanya

    Hi,
    1) Create a formula variable of user entry varibale say "ZFVUEKD" Formula varibale..select ready for input.
    2) Create a Customer exit variable for Key date "ZCVCEKD" wid following attributes... not ready for input and mandatory..
    Write this code in CMOD.
    DATA: offset(2)  type i.
    DATA: key_date like sy-datum.
    CASE I_VNAM.
    WHEN 'ZCVCEKD'.
    IF I_STEP = 2. "after the popup
    CLEAR L_S_RANGE.
    LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
    WHERE VNAM = 'KEYDATEVARIABLE'.
    key_date = LOC_VAR_RANGE-LOW ."low value, e.g.20000101
    EXIT.
    ENDLOOP.
    LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
    WHERE VNAM = 'ZFVUEKD'.
    offset = LOC_VAR_RANGE-LOW. "Check this is correct in RSRT by debugging
    EXIT.
    ENDLOOP.
    key_date  = key_date - offset.
    L_S_RANGE-LOW = key_date.
    L_S_RANGE-SIGN = 'I'.
    L_S_RANGE-OPT = 'EQ'.
    APPEND L_S_RANGE TO E_T_RANGE.
    ENDIF.
    Now, How to use this in query.
    1) create a your resrticted Key figure->
    netduedate >= ZCVCEKD;keyduedatevariable
    2) Creata a Formula->place that ZFVUEKD variable in formula area.
    and hide this formula.
    First try to debugg in RSRT and them check whether this code...work
    hope i m clr
    Regards,
    San!
    Message was edited by:
            San!

  • Errors uninstalling a connector in OIM

    I am trying to uninstall the Database Application Table connector (or any connector) in OIM 11.1.1.5.0, but I get errors.
    Step 1: I modify the ConnectorUninstall.properties, which can be found under <OIM_HOME>/server/bin. The information below is what I have in that file.
    *(the values of the ConnectorName and Release are the same as the values in my OIM console Advanced ->Manage Connector-> search)*
    # DatabaseURL: Enter the JDBC URL for the Oracle Identity Manager database. #
    # Format of the database URL for Oracle Database: #
    # jdbc:oracle:thin:@hostname:dbport:iam/oracle_sid #
    # DBUserName: OIM DB User Name #
    # DBType: Must be "ORACLE". Do not alter the default value. #
    DatabaseURL=jdbc:oracle:thin:@localhost:1521:orcl
    DBUserName=system
    DBType=ORACLE
    [Log]
    # LogLevel: Enter the log level--INFO, DEBUG, or ERROR. #
    # Location: Enter the log file location. #
    LogLevel=DEBUG
    Location=C:/Oracle/logs/connector
    [Connector]
    # ConnectorName: Enter the name of the connector that you want to uninstall.#
    # Note: The name that you enter must be the same as the name displayed in #
    # the search results table on the main connector management page of the #
    # Administrative and User Console. #
    ConnectorName=DatabaseApplicationTables
    # Release: Enter the release number of the connector that you want to #
    # un-install. #
    # NOTE: The release number that you enter must be the same as the release #
    # number displayed in the search results table on the main connector #
    # management page of the Administrative and User Console. #
    Release=9.1.0.5.0
    # ObjectType: Enter "ResourceObject", "ScheduleTask", "Lookup", or "Adapter".#
    # ObjectValues: Enter a semicolon-separated list of object values. #
    # NOTE: In case you provide ConnectorName and Release algonwith ObjectType #
    # and ObjectValue, than in such case, deletion of ObjectValues would be #
    # performed by the utility and the Connector information would be just #
    # skipped.                                         #
    ObjectType=
    ObjectValues=
    Step 2: Run the script uninstallConnector.sh, which can be found under <OIM_HOME>/server/bin .
    Given below are the results when I run the script:
    * This utility deletes data from the OIM database directly and is *
    * meant to be used in development/staging environments. *
    * WARNING: DO NOT USE IN PRODUCTION. *
    Chosen Logger Level: DEBUG
    Chosen Logger Location: C:/Oracle/logs/connector
    [Enter the DB Password :]
    [Enter OIM Administrator Name :]xelsysadm
    [Enter the OIM Administrator Password :]
    [Enter OIM Server t3 URL [Ex. t3://localhost:7001/ ]:]t3://localhost:14000
    Connected to the Database
    log4j:WARN No appenders could be found for logger (org.springframework.jndi.Jndi
    Template).
    log4j:WARN Please initialize the log4j system properly.
    Connector 'DatabaseApplicationTables 9.1.0.5.0' will be un-installed
    Do you want to continue with the connector un-install y:y
    ConnectorUninstallException: oracle.iam.connectormgmt.uninstall.UninstallUtility
    Error encountered while getting connector name and release :java.sql.SQLSyntaxEr
    rorException: ORA-00942: table or view does not exist
    Check the Logs for more details.
    Here are my Logs:
    13 Jul 2012 23:33:51 DEBUG Logger Initialized
    13 Jul 2012 23:33:51 DEBUG Exiting Method: validateAndInitiazeLogger of Class: ConnectorUninstall
    13 Jul 2012 23:33:51 DEBUG Exiting Method: loadPropertyFileAndLogger of Class: ConnectorUninstall
    13 Jul 2012 23:33:51 DEBUG Start of ConnectorUninstall Utility.
    13 Jul 2012 23:33:51 DEBUG Entering Method: getDBPassword of Class: ConnectorUninstall
    13 Jul 2012 23:33:56 DEBUG Exiting Method: getDBPassword of Class: ConnectorUninstall
    13 Jul 2012 23:33:56 DEBUG Entering Method: getOIMAdminUserName of Class: ConnectorUninstall
    13 Jul 2012 23:34:07 DEBUG Exiting Method: getOIMAdminUserName of Class: ConnectorUninstall
    13 Jul 2012 23:34:07 DEBUG Entering Method: getOIMAdminPassword of Class: ConnectorUninstall
    13 Jul 2012 23:34:10 DEBUG Exiting Method: getOIMAdminPassword of Class: ConnectorUninstall
    13 Jul 2012 23:34:10 DEBUG Entering Method: getOIMServerT3URL of Class: ConnectorUninstall
    13 Jul 2012 23:34:23 DEBUG Exiting Method: getOIMServerT3URL of Class: ConnectorUninstall
    13 Jul 2012 23:34:23 DEBUG Entering Constructor of Class: UninstallUtility.
    13 Jul 2012 23:34:23 DEBUG Validating Properties File..
    13 Jul 2012 23:34:23 DEBUG Entering Method: validateAndPopulateDBAndConnectorParameters of Class: UninstallUtility
    13 Jul 2012 23:34:23 DEBUG Exiting Method: validateAndPopulateDBAndConnectorParameters of Class: UninstallUtility
    13 Jul 2012 23:34:23 DEBUG Valdiation Succeeded.. All the properties have been loaded.
    13 Jul 2012 23:34:23 DEBUG Getting the Database Connection
    13 Jul 2012 23:34:23 DEBUG Entering Method: getDatabaseConnection of Class: UninstallUtility
    13 Jul 2012 23:34:23 DEBUG jdbc:oracle:thin:@localhost:1521:orcl
    13 Jul 2012 23:34:24 DEBUG Connection established
    13 Jul 2012 23:34:24 DEBUG Exiting Method: getDatabaseConnection of Class: UninstallUtility
    13 Jul 2012 23:34:24 DEBUG Setting the OIMClient
    13 Jul 2012 23:34:24 DEBUG Entering Method: setOIMClient of Class: UninstallUtility
    13 Jul 2012 23:34:25 DEBUG Exiting Method: setOIMClient of Class: UninstallUtility
    13 Jul 2012 23:34:25 DEBUG Successful in setting the OIMClient
    13 Jul 2012 23:34:25 DEBUG Exiting Constructor of Class: UninstallUtility.
    13 Jul 2012 23:34:25 DEBUG Entering Method: doConnectorDeletion of Class: ConnectorUninstall
    13 Jul 2012 23:34:25 DEBUG Entering Method: validateDirectDeletion of Class: UninstallUtility
    13 Jul 2012 23:34:25 DEBUG Exiting Method: validateDirectDeletion of Class: UninstallUtility
    13 Jul 2012 23:34:28 DEBUG Entering Method: executeDirectDeletion of Class: UninstallUtility
    13 Jul 2012 23:34:28 DEBUG Entering Method: verifyConnectorInstalled of Class: UninstallUtility
    13 Jul 2012 23:34:28 DEBUG parameter values sConnectorName=DatabaseApplicationTables sConnectorRelease=9.1.0.5.0
    13 Jul 2012 23:34:28 ERROR oracle.iam.connectormgmt.uninstall.UninstallUtility Error encountered while getting connector name and release :java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
    13 Jul 2012 23:34:28 ERROR ORA-00942: table or view does not exist
    java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
         at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:837)
         at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445)
         at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
         at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523)
         at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
         at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:862)
         at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1153)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1275)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3620)
         at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
         at oracle.iam.connectormgmt.uninstall.UninstallUtility.verifyConnectorInstalled(UninstallUtility.java:740)
         at oracle.iam.connectormgmt.uninstall.UninstallUtility.executeDirectDeletion(UninstallUtility.java:314)
         at oracle.iam.connectormgmt.uninstall.ConnectorUninstall.doConnectorDeletion(ConnectorUninstall.java:369)
         at oracle.iam.connectormgmt.uninstall.ConnectorUninstall.main(ConnectorUninstall.java:83)
    13 Jul 2012 23:34:28 ERROR oracle.iam.connectormgmt.uninstall.UninstallUtilityError encountered while getting connector name and release :java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
    oracle.iam.connectormgmt.uninstall.ConnectorUninstallException: oracle.iam.connectormgmt.uninstall.UninstallUtilityError encountered while getting connector name and release :java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
         at oracle.iam.connectormgmt.uninstall.UninstallUtility.verifyConnectorInstalled(UninstallUtility.java:751)
         at oracle.iam.connectormgmt.uninstall.UninstallUtility.executeDirectDeletion(UninstallUtility.java:317)
         at oracle.iam.connectormgmt.uninstall.ConnectorUninstall.doConnectorDeletion(ConnectorUninstall.java:371)
         at oracle.iam.connectormgmt.uninstall.ConnectorUninstall.main(ConnectorUninstall.java:83)
    How can I fix this problem? What is the name of the table that stores the connectors data?
    Edited by: 946412 on Jul 13, 2012 9:03 PM

    946412 wrote:
    I am trying to uninstall the Database Application Table connector (or any connector) in OIM 11.1.1.5.0, but I get errors.
    How can I fix this problem? What is the name of the table that stores the connectors data?
    The name is CIH (ConnectionHistory)

Maybe you are looking for

  • Reg displaying a Field as Drop Down in ALV Grid Display

    Hi All, I have developed an ALV report program with one editable field using FM "REUSE_ALV_GRID_DISPLAY_LVC". My requirement is to make that editable field as dropdown box so that user can choose from the options. If i press SAVE all those will gets

  • Print but not Scan

    My networked multifunction scanner is not showing up in Photoshop Elements 9's File | Import menu; so I can't scan on that computer (but I can Print to the same multifunction [it's also a networked Printer] with Elements 9 on that computer. Photoshop

  • How to reactivate the welcome screen of indesign?

    how to reactivate the welcome screen of indesign?

  • Exporting Numbers sheet to pdf but keeping formulas?

    Hi! I want to know if it's possible to export a Numbers sheet to .pdf in a way that let's me keep the formulas? My goal is to create a pdf which let's the user answer a series of questions where the answers create a result and a couple of diagrams. I

  • Lean catalog for purchasing

    Hi! We would like to use the lean catalog solution in the ERP system for purchasing. I understand that the catalog can be maintained via tcode WWM1/WWM2. However, I do not quite know how to find out the URL or call structure so that I can maintain th