Quick debugging and enhancement tips....

Hello ABAP experts!!!!!!!!!!
I am a fresh SAP BI Consultant.I can do little ABAP.Recently,we started getting requirements every day with small and big ABAP codings which needs to be modified....
As I am not a ABAPer....my approach is like....
I print out the program....try to understand it....then go to client...try to understand what he wants....then come back and try writing code on paper...then try this in development...I feel like its takoing long time sometimes and wanted to know  professional ABAPers approach to enhancements....because with experience comes effectiveness in approach to solving problems.
Do you have any tips on how I can change my approach to make it faster.....?
Many Thanks!!!!!!!!!!
P Olin.

Moderator message - Unfortunately, this forum is not a place to learn ABAP. I suggest that you talk to your client and have him/her hire an ABAPer - post locked

Similar Messages

  • JDeveloper 10g - Debugging and hotswap

    Hi All,
    Have recently started to explore the hotswap funtionality in JDev debugging. I've created a simple application with a single EJB3 stateless session bean. Debugging from JDev works great, however when I make any source change while debuging and recompile the hotswap fails with the following error.
    The debugger was unable to redefine the recompiled classes.
    Unsupported operation: hierarchy change.
    What does the message mean and how do I get hotswap working? I'm using the JDK supplied with JDeveloper if that makes any difference.
    Cheers,
    J

    Thanks, but isn't this for implementing enhancements to JDeveloper only? Is it possible to use this classes in a standalone java application?

  • Different environments created for Debug and Release libraries

    Environments created in Debug mode cannot be read by software compiled in release mode. The same is true for the reverse.
    Both libraries compiled with VS.NET 2005 (C++). The environment created in Debug mode is slightly different than the library created in the Release mode. I would assume that this is a bug?
    __db.001 - no change
    __db.002 - DIFFERENT
    __db.003 - no change
    __db.004 - no change
    __db.005 - DIFFERENT
    __db.006 - no change
    Aeronautical.dbxml - no change
    log.0000000001 - no change
    The environments are created using the following flags:
    // Flags required when opening the XmlDB Environment
    m_environmentFlags =      DB_CREATE |     // If the environment does not exist, create it.
                             DB_INIT_LOCK |     // Initialize the locking subsystem
                             DB_INIT_LOG |     // Initialize the logging subsystem
                             DB_INIT_MPOOL |     // Initialize the cache
                             DB_INIT_TXN |     // Initialize transactions
                             DB_THREAD;          // Ensure Environment is
                                                 // free-threaded
    The database contains a single XML document.
    An attempt to open() fails with the following error message:
    DbEnv::open: No such file or directory

    Hey Ron,
    Thanks for answering so quickly. Having release and debug builds able to manipulate the same environments is a requirement of convenience. Our project builds both release and debug versions of our software and distributes both versions to the development team daily. The team is encouraged and expected to run both debug and release builds to test their contributions and because the system opens the database (which is distributed with the build) upon startup, one of the two will always fail to load. That leaves us with two obvious solutions/workarounds. The first being to distribute the build with 2 environments and ensure that the build chooses the correct environment based on whether it is debug or release. The second is to rebuild the debug library without the --enable-diagnostic switch.
    We have no immediate need to enable the diagnostic information (that I am aware of...in fact I don't even know what types of checks are put in that would be helpful).
    Do you have an alternative solution that others have used as a work around for this?

  • Customization and Enhancment of ICSS B2B 5.0 (Java )

    Hi,
    I have to customize and enhance the functionality of CRM 5.0 ICSS B2B web front end.
    i studied the ISA50DevExtGuideConcepts21.pdf document,according to the document i am using NWDS for development.
    I am following the below mentioned methodology.
    1 > Downloaded NWDS 7.0
    2> Configured the NWDS to point to remote j2ee engine
          (WindowPreferencesSAP J2ee Engine 
            Message server host
            Message Server Port )
    3> Got the latest source code i.e sap.comcrmicsswebicss_b2b.war
         extracted the source code.
    4> created An Enterprise Application Project
    5> Created Web Module Project
    6> Added the created Web Module Project into the Enterprise Application Project
    7> Followed the 1017761 note to deploy the standard application with different   name
    8> Generated the custom_app.ear file.(J2EE Explorer Perspective)
    9> Deployed the application using NWDS deploy option.(J2EE Explorer Perspective custom_app.earright click u will have option for deploy onto j2ee engine--asks SDM password)
    when i try to access the deployed custom application using
    http://host:port/custom_app/init.do
    i am getting the following error
      Application error occurred during request processing.
      Details:   Error [javax.servlet.ServletException: Initialization of Extended Configuration Management failed.].
    Exception id: [0014C265B0070079000006E900006B000004310E29004C31]
    when i access the http://host:port/custom_appt/admin/index.jsp
    i am getting an empty Menu page .no links for XCM admin
    SAP support suggested me to apply the patch.my java stack is at SP11 and
    in sync with  979884 note patch also.
    but still getting the error.
    here my question is am i following proper methodology or u find any gaps in the procedure.
    i studied in the ISA50DevExtGuideConcepts21.pdf some where they said
    about the enabling the debugging and about DTR ,if find any details do let me know asap.
    thanks
    Suresh

    Hi Pranay
    If you are checking this mail.
    I have the same problem, and I also have SAP-CRMDIC  5.0 SP6 (1000.5.0.6.0.20060914084317) deployed. Could you please advise why am I not able to see XCM config? or the whole of the admin.
    I am using my custom application and deployed the ear through NWDS.
    Points Gurenteed.
    Thanks
    Gaurav Sahai

  • Abap Debug and Functional Specification to Funcitonal Analist.

    Dear friends,
    Does anyone has some tips to guide  a functional to construct a good Functional Specification  and also tips to functional do some easy debugs ?
    best regards
    Ale

    Hi Alessandro .,
    while preparing Functional Spec ,  Ensure that all the Business requirements is coverd .
    Be clear about the screens that are required for the Object . USe F1 key and give clear Idea about the Technical name & Field label .
    ENsure the Test data . Possible deviations .
    For Debugging Use /h  and F5 for step by step Exctuion . Identify what are the steps you want to track put some break point ( place the Cursur in the line and hit Debug Button , Save once) .
    hope this helps You .
    thanks
    Sreenivas
    Edited by: Sreenivas Reddy Dommata on Aug 27, 2008 7:27 AM

  • Debugging and file access

    Hi!
    I have a problem developing a midlet for MIDP2.0
    In emulators, everything works fine but I observed some funny behavoir when running that midlet on the mobile phone. Anyway, I am not asking for a solution for that problem, but for a general one:
    What is in your opinion the best way to debug the midlet on the mobile phone (not in emulator because it works there...)? How do you write debug messages? Is there a possibility to write something into some kind of log file? I know there is no access to the file system in general, but can I maybe wreite something into a file which is in the JAR file? Please post some example code if there is any possibility to do this =)
    Cheers!

    You can write the data into the RMS, and pack a second MIDlet in the suite that allows you to read the data.
    A couple of other options are displaying it on screen (good for quick fixes and catching small bugs), or sending the data over the network and logging it on the server (in theory the best solution, but in practice if the MIDlet is not networked to begin with you might end up having more bugs and wierd behaviour from the network code than the application you are trying to debug).
    shmoove

  • Difference between system debugging and update debugging

    hai guru's can any one tell the difference between system debugging and update debugging
    thanx in advance
    afzal

    hi,
    System Debugging
    If you set this option, the Debugger is also activated for system programs
    (programs with status S in their program attributes). When you save breakpoints, the System Debugging setting is also saved.
    Update Debugging
    Update function modules do not run in the same user session as the program that is currently running in the ABAP Debugger.
    These function modules are therefore not included in debugging.
    Only if you select the Update Debugging option can you display and debug them after the COMMIT WORK.
    For debugging tutorial:
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/5a/4ed93f130f9215e10000000a155106/frameset.htm
    http://www.sapdevelopment.co.uk/tips/debug/debughome.htm
    http://www.sap-basis-abap.com/sapab002.htm
    <b>Reward points</b>
    Regards

  • DEBUG in ENHANCEMENT-POINT

    Hi all,
    Can i use a break-point into ENHANCEMENT-POINT?
    i can't debug into ENHANCEMENT-POINT.
    Anybody help me??
    regards,

    I put a break-point in the code, but the system don't stop.
    See the exemple:
    ENHANCEMENT-POINT WE_AUS_BETS_02 SPOTS ES_SAPLEINR.
    ENHANCEMENT 13  /CWM/APPL_MM_SAPLEINR.    "active version
    INCLUDE /CWM/MOD_LEINRF2B_1. "CWM CWEK000072
      break marcelo_10.
      if sy-tcode = 'MB01'.
        if EKKO-WAERS NE 'BRL'  and
           ( ekko-bsart NE 'ZI' and
             ekko-bsart NE 'IP' ).
      CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
           EXPORTING
                DATE             = I_BLDAT
                FOREIGN_AMOUNT   = XEBEFU-NETWR  "Nettower
                FOREIGN_CURRENCY = EKKO-WAERS
                LOCAL_CURRENCY   = T001-WAERS
                TYPE_OF_RATE     = KURSTYP
           IMPORTING
                LOCAL_AMOUNT     = XEBEFU-NETWR.
        endif.
      endif.
    ENDENHANCEMENT.

  • I cannot open my firefox broswer. The message box appeared that said a problem caused the program to stop working correctly. Windows will close the program and notify you if a solution is available. Under that there are debug and close program buttons.

    I cannot open my firefox broswer. The message box appeared that said a problem caused the program to stop working correctly. Windows will close the program and notify you if a solution is available. Under that there are debug and close program buttons.

    JackieMars71 I would recommend reviewing your installation log files to determine if there are any errors during the installation process.  You can find information on how to locate and interpret your installation log files at Troubleshoot install issues with log files | CC - http://helpx.adobe.com/creative-cloud/kb/troubleshoot-install-logs-cc.html.  You are welcome to post any specific errors you discover to this discussion.

  • HT201210 my iphone 3gs is showing errors wen i turn on debug and some apps will open and then close.

    my iphone 3gs is showing errore wen i turn on debug and some apps will open and then close

    There's an apple store in my city but it is about a 20 minute drive and I do not have apple care. Do you think they would still help me?

  • How access my files/ folder from Quick Office and from other applications

    Hi
    I was a HTC user, and recently i decided to purchase the iphone 3Gs from Rogers and I end up with a frustration and helpless. First thing that I notice that there is no built-in application for editing the Excel & Word documents. Then I purchased quick office and realize that there is no way to copy over the documents to iphone. Way the quick office wants to upload the file is not workable because it offer to upload one by one.
    Then I purchased another application WIFI FPT and i was very happy that now I can upload my folders very quickly and then I end up again with great frustration that quick office can’t see that folders that I upload with FTP.
    I am very disappointed and frustrated, if apple want to make it really workable for business then they have to create a users area/space where users can copy their stuff quickly and all application can navigate in that area. So in this way we can access all of our data from any application.
    I hope that some one will take it seriously and help me/us to work with this phone. I never spent a penny for HTC to work with my documents and after I purchased this dam thing I spend almost $40 for all different kind of application and I am still unable to use it for my daily work.

    Research before the purchase would have helped. This has never been a feature of iphone. You have always needed an App in order to accomplish this.
    You can leave feedback for Apple at:
    http://www.apple.com/feedback/iphone.html

  • How to implement Quick Query and Saved Searches in ADF?

    We are using 11gR2 ADF.
    The requirement is to enable Quick Search and save the Searches.
    In the Oracle ADF documentation, it is mentioned that
    - Create a view with view criteria named.
    - In the .jspx drag and drop the view criteria and Select Quick Query
    Upon doing the above, we see that a Search panel is getting created, but with a message 'No Search Fields Added'.
    In the named view criteria, Under 'UI Hints' we have set
    -- execution mode as Both
    -- Search region mode is Basic
    -- Show Operators in Basic
    Under 'Criteria Definition'
    the attributes are added in a group with OR condition.
    Thanks for your reply. Oracle ADF developer guide does not help!!
    If you have any other documentation that helps in implementing this Quick Query and Saved Search, your help is greatly appreciated.

    Set the following on your af:query component
    SaveQueryMode = hidden
    ModeChangeVisible = false
    This should work for you ..
    Regards,

  • How to debug and find the exact constraint violation error

    {122712 14:22:36:ErrorCode -1 with ErrorMessage as ORA-00001: unique constraint (OPS$CMS.PK_TB_ML_EXER_UPLOAD) violated has occured for [SSO16063259009], [CMSCOST_USER] pk_xop_subsales.pr_process_exer }
    {PROCEDURE pr_process_exer(
    p_voucher_num           tb_xop_order_manager_t.voucher_num%TYPE,
    p_status_type           tb_xop_order_manager_t.status_type%type,
    p_dest                    tb_xop_order_manager_t.dest%type,
    p_reference_key            tb_xop_order_manager_t.reference_key%type,
    p_seq_num                tb_xop_order_manager_t.seq_num%type,
    p_return_code            tb_xop_order_manager_t.return_code%type,
    p_reason_desc           tb_xop_order_manager_t.reason_desc%type,
    p_activity_qty            tb_xop_order_manager_t.activity_qty%type,
    p_leaves_qty            tb_xop_order_manager_t.leaves_qty%type,
    p_exec_price            tb_xop_order_manager_t.exec_price%type,
    p_current_status        tb_xop_order_manager_t.current_status%type,
    p_err_cur          OUT  ref_cursor)
    IS
    CURSOR get_order_dtls(v_voucher_num tb_xop_order_manager_t.voucher_num%type)
    IS
    SELECT *
    FROM   tb_xop_order_manager_t
    WHERE  voucher_num = v_voucher_num;
    CURSOR get_mail_cd(v_opt_num OPTIONEE.opt_num%TYPE) IS
          SELECT mail_cd, sp_mail_cd
          FROM XOP_OPTIONEE
          WHERE opt_num = v_opt_num;
    cursor get_opt_dtls(v_opt_num OPTIONEE.opt_num%TYPE) IS
    select
    SUBSTR(trim(O.name_first) || ' ' || trim(O.name_mi) || ' ' ||
              trim(O.name_last), 1, 35) p_name,
            SUBSTR(O.address1, 1, 35) opt_addr1,
              SUBSTR(O.address2, 1, 35) opt_addr2,
              SUBSTR(O.address3, 1, 35) opt_addr3,
              SUBSTR(O.address4, 1, 35) opt_addr4,
              SUBSTR(O.address5, 1, 35) opt_addr5,
              SUBSTR(O.address6, 1, 35) opt_addr6,
            SUBSTR(trim(O.city) || ' ' || trim(O.state) || ' ' ||
            trim(O.zip) || ' ' || trim(O.country), 1, 35) city_state_zip_country,
            trim(O.city) city,
            trim(O.state) state,
            trim(O.zip) zip,
            trim(O.country) country
    from  optionee o
    where o.opt_num = v_opt_num;
    --CQ:PCTUP00210726- Added wire instructions audit for deleted wire info.
    CURSOR c_wire_instruction (
          in_wire_seq_no           TB_XOP_WIRE_INSTRUCTIONS.wire_seq_no%TYPE ) IS
          SELECT ml_brok_acct_num,
                 ssn,
                 plan_num,
                 instr_type,
                 aba_routing_num,
                 swift_routing_code,
                 bank_name,
                 bank_acct_num,
                 name_on_account,
                 bank_addr_1,
                 bank_addr_2,
                 bank_addr_3,
                 city,
                 state,
                 country,
                 zip,
                 bank_ident_num,
                 addtl_info
            FROM TB_XOP_WIRE_INSTRUCTIONS
           WHERE wire_seq_no = in_wire_seq_no
           UNION
           SELECT ml_brok_acct_num,
                 ssn,
                 plan_num,
                 instr_type,
                 aba_routing_num,
                 swift_routing_code,
                 bank_name,
                 bank_acct_num,
                 name_on_account,
                 bank_addr_1,
                 bank_addr_2,
                 bank_addr_3,
                 city,
                 state,
                 country,
                 zip,
                 bank_ident_num,
                 addtl_info
            FROM TB_XOP_WIRE_INSTRUCTIONS_AUDIT
           WHERE wire_seq_no = in_wire_seq_no;
    CURSOR c_order_qty IS
    SELECT order_qty
    FROM tb_xop_order_manager
    WHERE voucher_num = p_voucher_num;
    v_order_qty     tb_xop_order_manager.order_qty%TYPE;
    v_wire_instruction             c_wire_instruction%ROWTYPE;
    v_order_dtls      get_order_dtls%rowtype;
    v_opt_dtls        get_opt_dtls%rowtype;
    v_settle_dt       tb_ml_exer_upload.settle_dt%type;
    v_cusip_num       corp.cusip_num%type;
    v_err_cd          number(12):=0;
    v_err_msg         varchar2(4000);
    v_compy_nme       tb_fc_Compy.compy_nme%type;
    v_ml_sec_num      tb_fc_compy.ml_sec_num%type;
    v_mail_cd         xop_optionee.mail_cd%type;
    v_count1            PLS_INTEGER := 0;
    v_sum_activity_qty  tb_xop_order_manager_t.activity_qty%TYPE;
    v_transact_no       PLS_INTEGER;
    v_ivr_plan_num      tb_fc_compy.ivr_plan_num%TYPE;
    wait_for_more       EXCEPTION;
    exceeds_order_qty   EXCEPTION;
    --Added for CQ# PCTUP00481233
    v_sub_totfee number;
    v_sub_fixedfee1 number;
    v_sub_fixedfee2 number;
    v_sub_fixedfee3 number;
    v_sub_secfee number;
    v_sub_feenum number;
    --Added for CQ# PCTUP00481233
    v_fixedfee1 tb_xop_order_manager_t.fixed_fee1%TYPE; --SPIF# 43161- variable to hold fixed fee1
    BEGIN
        OPEN c_order_qty;
        FETCH c_order_qty INTO v_order_qty;
        CLOSE c_order_qty;
        dbms.output.put_line('completed1');
        IF v_order_qty <> p_activity_qty THEN
          dbms.output.put_line('completed2');
            IF p_status_type = 'EO' AND v_order_qty < p_activity_qty THEN
                RAISE exceeds_order_qty;
                  dbms.output.put_line('completed3');
            ELSIF p_status_type = 'EO' AND v_order_qty > p_activity_qty THEN
                -- Partial Execution
                INSERT INTO tb_xop_hold_multi_orders
                    ( voucher_num
                    , reference_key
                    , seq_num
                    , return_code
                    , reason_desc
                    , status_type
                    , activity_qty
                    , leaves_qty
                    , exec_price
                    , current_status
                    , waiting
                    ,activ_dt )
                VALUES
                    ( p_voucher_num
                    , p_reference_key
                    , p_seq_num
                    , p_return_code
                    , p_reason_desc
                    , p_status_type
                    , p_activity_qty
                    , p_leaves_qty
                    , p_exec_price
                    , p_current_status
                    , 'Y'
                    ,SYSTIMESTAMP );
                      dbms.output.put_line('completed4');
            ELSE
                IF p_status_type = 'BE' THEN
                    SELECT COUNT(1) INTO v_count1
                    FROM tb_xop_hold_multi_orders
                    WHERE voucher_num = p_voucher_num;
                      dbms.output.put_line('completed5');
                    IF v_count1 > 0 THEN
                        INSERT INTO tb_xop_hold_multi_orders
                            ( voucher_num
                            , reference_key
                            , seq_num
                            , return_code
                            , reason_desc
                            , status_type
                            , activity_qty
                            , leaves_qty
                            , exec_price
                            , current_status
                            , waiting
                            ,activ_dt)
                        VALUES
                            ( p_voucher_num
                            , p_reference_key
                            , p_seq_num
                            , p_return_code
                            , p_reason_desc
                            , p_status_type
                            , (-1) * p_activity_qty
                            , p_leaves_qty
                            , p_exec_price
                            , p_current_status
                            , 'Y'
                            ,SYSTIMESTAMP );
                        UPDATE tb_xop_hold_multi_orders
                        SET waiting = 'Y'
                        WHERE voucher_num = p_voucher_num;
                          dbms.output.put_line('completed6');
                    END IF;
                END IF;
            END IF;
              dbms.output.put_line('completed7');
            SELECT SUM(NVL(activity_qty,0)) INTO v_sum_activity_qty
            FROM tb_xop_hold_multi_orders
            WHERE waiting = 'Y'
            AND voucher_num = p_voucher_num;
            IF v_sum_activity_qty > 0 THEN
                IF v_sum_activity_qty <> v_order_qty THEN
                    RAISE wait_for_more;
                ELSE
                    -- final order in the partial execution; complete the process
                    UPDATE tb_xop_hold_multi_orders
                    SET waiting = 'N'
                        , process_dt = SYSDATE
                    WHERE voucher_num = p_voucher_num;
                END IF;
            END IF;
        END IF;
        UPDATE tb_xop_order_manager_t
        SET activ_dt = TO_CHAR( SYSDATE, 'YYYY-MM-DD HH24:MI:SS' ) || '.000'
            , dest = p_dest
            , reference_key = p_reference_key
            , seq_num = p_seq_num
            , return_code = p_return_code
            , reason_desc = p_reason_desc
            , status_type = p_status_type
            , activity_qty = v_order_qty --p_activity_qty
            , leaves_qty = 0 --p_leaves_qty
            , exec_price = p_exec_price
        WHERE voucher_num = p_voucher_num;
        dbms.output.put_line('completed8');
         * SPIF# 43161- Update of current status to PO moved at the end, same as how PROD works.
    IF (p_status_type = 'EO') THEN
      BEGIN
        select cusip_num
          into   v_cusip_num
          from   corp;
      EXCEPTION
          WHEN NO_DATA_FOUND THEN
              SELECT cusip_num
                INTO v_cusip_num
                FROM tb_xop_espp_compy
               WHERE compy_acronym = replace(replace(user,'CMS'),'_USER');
          WHEN OTHERS THEN
              NULL;
      END;
       select compy_nme,ml_sec_num, ivr_plan_num
       into   v_compy_nme,v_ml_sec_num, v_ivr_plan_num
       from   tb_fc_compy
       where compy_acronym = replace(replace(user,'CMS'),'_USER')
       UNION ALL
       select compy_nme, je_ml_security_number, ivr_plan_num
       from tb_xop_espp_compy
       where compy_acronym = replace(replace(user,'CMS'),'_USER');
    --   where  ivr_plan_num = replace(substr(p_voucher_num,1,7),'SSO','XOP');
      open get_order_dtls(p_voucher_num);
      FETCH get_order_dtls INTO v_order_dtls;
       v_settle_dt := fn_xop_bankopen_bizday(TRUNC(v_order_dtls.exer_date + 1));
       v_settle_dt := fn_xop_bankopen_bizday(TRUNC(v_settle_dt + 1));
       v_settle_dt := fn_xop_bankopen_bizday(TRUNC(v_settle_dt + 1));
       FOR c_mail_cd IN get_mail_cd(v_order_dtls.opt_num)
       LOOP
         v_mail_cd := c_mail_cd.mail_cd;
         -- Do we need to get sp_mail_cd and overlay with the sp_mail_cd in order_manager_t???
       END LOOP;
       OPEN get_opt_dtls(v_order_dtls.opt_num);
       FETCH get_opt_dtls INTO v_opt_dtls;
       CLOSE get_opt_dtls;
      v_fixedfee1 := nvl(v_order_dtls.fixed_fee1, 0);
       * SPIF# 43161- atleast one handling fee per day of transaction
      v_fixedfee1 := pk_xop_enh_exerupdate.chrg_tranxfixed_fee(v_fixedfee1,
                                                               v_order_dtls.symbol,
                                                               v_order_dtls.corp_acronym,
                                                               v_order_dtls.opt_num);
      --Insert into tb_ml_exer_upload
      --Added for CQ# PCTUP00481233
       Pk_Xop_Transactmodel.GET_FEE(v_order_dtls.GROUP_ID,v_order_dtls.SVC_ID,'SQ',v_order_dtls.opts_exer,
                                    round(v_order_dtls.exec_price, 4),v_sub_totfee,v_sub_fixedfee2,v_sub_fixedfee1,
                                    v_sub_fixedfee3,v_sub_secfee,v_sub_feenum,lpad(v_order_dtls.ssn,9,0));
       v_order_dtls.sec_fee:=v_sub_secfee;
       UPDATE tb_xop_order_manager_t
        SET sec_fee=v_sub_secfee
        WHERE voucher_num = p_voucher_num;
        dbms.output.put_line('completed8');
      --- End CQ # PCTUP00481233
      INSERT INTO tb_ml_exer_upload
                            (exer_num,exer_seq,
                             exer_dt, written_flag, backout_flag, output_line,
                             je_flag, opts_exer,
                             tot_tax,shrs_sold,comm_value,tot_fee,
                             mkt_prc,exer_type, soc_sec,
                             name_first, name_mi,
                             name_last,check_addr_1,check_addr_2,check_addr_3,
                             check_addr_4,check_addr_5,city,state,zip,country,
                             city_state_zip_country,
                             p_name,opt_addr1,opt_addr2,opt_addr3,opt_addr4,
                             opt_addr5,opt_addr6,
                             settle_dt,send_to_citibank_flag,
                             dom_chek_distr,foreign_currency_code,
                             distribution_method,wire_seq_no,
                             cusip_num, ml_retail_account,multi_curr_handling_fee,
                             ml_sec_num, corp_name,upd_optionee_addr,
                             outbound_flag, -- make it N
                             corp_symbol,taxwire_approve, -- make it not applicaplabe
                             exersource,
                             mail_cd, sp_mail_cd,
                             backup_withholding,
                             user_id,
                             acct_num_othr)
       VALUES(v_order_dtls.exer_num,0,v_order_dtls.exer_date,'N','N',NULL,
    -- PG 12/12/05 Changed to populate the je_flag based on dom_chek_distr         'D',
    -- PG 12/16/05 JE should not be generated for international checks.. So 'Y' always
              'Y', --je_flag
              v_order_dtls.opts_exer,0,--total tax will be 0.
              v_order_dtls.opts_exer, --shrs_sold,
              v_order_dtls.comm_value,
              --SPIF# 43161- replaced nvl(v_order_dtls.fixed_fee1, 0) with v_fixedfee1
              v_fixedfee1 + nvl(v_order_dtls.fixed_fee3,0) + nvl(v_order_dtls.sec_fee,0), --v_order_dtls.fees_amt,
              round(v_order_dtls.exec_price, 4),v_order_dtls.exer_type,
              LPAD(v_order_dtls.ssn,9,'0'), --v_order_dtls.ssn, Modified by Suresh on 02/08/07 for SPIF # 37210
              v_order_dtls.name_first,v_order_dtls.name_mi,v_order_dtls.name_last,
              v_order_dtls.check_addr_1,v_order_dtls.check_addr_2,v_order_dtls.check_addr_3,
              v_order_dtls.check_addr_4,v_order_dtls.check_addr_5,nvl(v_order_dtls.city,v_opt_dtls.city),
              nvl(v_order_dtls.state,v_opt_dtls.state),nvl(v_order_dtls.zip,v_opt_dtls.zip),
              nvl(v_order_dtls.country,v_opt_dtls.country),
              SUBSTR(nvl(v_order_dtls.city||v_order_dtls.state||v_order_dtls.zip||v_order_dtls.country,
                  v_opt_dtls.city_state_zip_country),1,34), -- COLUMN LENGTH MAX IS 35
              v_opt_dtls.p_name,v_opt_dtls.opt_addr1,v_opt_dtls.opt_addr2,v_opt_dtls.opt_addr3,
              v_opt_dtls.opt_addr4,v_opt_dtls.opt_addr5,v_opt_dtls.opt_addr6,
              v_settle_dt,decode(v_order_dtls.distribution_method,'W','Y','D','Y','C','Y','D'),
              v_order_dtls.dom_chek_distr,v_order_dtls.foreign_currency_code,
              v_order_dtls.distribution_method,v_order_dtls.wire_seq_no,
              v_cusip_num,v_order_dtls.acct_num,v_order_dtls.multi_curr_handling_fee,
    --          nvl(fn_get_sec_num(replace(substr(p_voucher_num,1,7),'SSO','XOP'),v_order_dtls.symbol),v_ml_sec_num),
              nvl(fn_get_sec_num(v_ivr_plan_num, v_order_dtls.symbol),v_ml_sec_num),
              v_compy_nme,v_order_dtls.upd_optionee_addr,
              'N', --'N' is for outbound flag.
              v_order_dtls.symbol,'D', --'D' for taxwires disabled
              'S', -- 'S' for source being subsequent sale.
              v_mail_cd,  --need to get mail_Cd??
              v_order_dtls.sp_mail_cd,v_order_dtls.backup_withholding,
              user,v_order_dtls.acct_num_othr);
    IF (NVL(v_order_dtls.wire_seq_no,0) > 0) THEN
       OPEN c_wire_instruction(v_order_dtls.wire_seq_no);
       FETCH c_wire_instruction INTO v_wire_instruction;
       CLOSE c_wire_instruction;
      INSERT INTO TB_XOP_TRANSACT_WIRE_INSTR
                           (user_id, exer_num, wire_seq_no, ml_brok_acct_num, ssn,
                            plan_num, instr_type, aba_routing_num,
                            swift_routing_code, bank_name, bank_acct_num,
                            name_on_account, bank_addr_1, bank_addr_2, bank_addr_3,
                            city, state, country, zip, bank_ident_num, addtl_info )
                        VALUES
                           (USER,v_order_dtls.exer_num, v_order_dtls.wire_seq_no,
                            v_wire_instruction.ml_brok_acct_num, v_wire_instruction.ssn,
                            v_wire_instruction.plan_num, v_wire_instruction.instr_type, v_wire_instruction.aba_routing_num,
                            v_wire_instruction.swift_routing_code, v_wire_instruction.bank_name, v_wire_instruction.bank_acct_num,
                            v_wire_instruction.name_on_account, v_wire_instruction.bank_addr_1, v_wire_instruction.bank_addr_2,
                            v_wire_instruction.bank_addr_3, v_wire_instruction.city, v_wire_instruction.state, v_wire_instruction.country, v_wire_instruction.zip,
                             v_wire_instruction.bank_ident_num, v_wire_instruction.addtl_info);
            dbms.output.put_line('completed10');
    END IF;
    /* PG 01/05/06 Call the check conversion only for international checks and wires */
    IF v_order_dtls.dom_chek_distr = 'N' AND v_order_dtls.distribution_method IN ('W', 'D', 'C') THEN
        /* PG 12/20/05 To process subsequent sales with wire or foreign currency distribution */
         v_transact_no := 88;
         pk_xop_citibank_forex.pr_cashconversion_ins_request( v_order_dtls.acct_num
                                                              , LPAD(v_order_dtls.ssn,9,'0') --v_order_dtls.ssn, Modified by Suresh on 02/15/07 for SPIF # 37210
                                                              , v_order_dtls.distribution_method
                                                              , v_order_dtls.foreign_currency_code
                                                              , v_order_dtls.wire_seq_no
                                                              , ROUND((v_order_dtls.opts_exer * round(v_order_dtls.exec_price, 4)),2)
                                                                - ROUND(v_order_dtls.comm_value,2)
                                                                - ROUND(nvl(v_order_dtls.fixed_fee1,0) + nvl(v_order_dtls.fixed_fee3,0) + nvl(v_order_dtls.sec_fee,0),2)
                                                                - nvl(v_order_dtls.multi_curr_handling_fee,0)
                                                                - nvl(v_order_dtls.backup_withholding,0) -- net proceeds
                                                              , v_order_dtls.multi_curr_handling_fee --handling fee
                    --Modified by Bhaskar/Suresh on 03/02/2006    --, v_order_dtls.login_name
                                                              , CASE v_order_dtls.login_name WHEN 'CLIENT/' THEN v_order_dtls.login_name||'SSO' ELSE v_order_dtls.login_name||'/SSO' END
                                                              , v_transact_no -- transact_no as place holder for exer_type 88
                                                              , v_order_dtls.check_addr_1
                                                              , v_order_dtls.check_addr_2
                                                              , v_order_dtls.check_addr_3
                                                              , v_order_dtls.check_addr_4
                                                              , v_order_dtls.upd_optionee_addr
                                                              , v_order_dtls.city
                                                              , v_order_dtls.state
                                                              , v_order_dtls.zip
                                                              , v_order_dtls.country
                                                              , v_order_dtls.login_ipaddress
                                                              , v_order_dtls.fcnum
                                                              , v_order_dtls.opt_num
                                                              , v_settle_dt,
                                                              p_exer_num => v_order_dtls.exer_num
    END IF;
    COMMIT;
    close get_order_dtls;
    END IF;
      * SPIF# 43161- Update to current status into PO is moved to this part, same as PROD.
    UPDATE tb_xop_order_manager_t
    SET exec_dttime = decode(p_status_type,'EO',to_char(sysdate,'DD-MON-YYYY HH24:mi:ss'),null)
         , exer_date  = TRUNC(SYSDATE)
         , cancel_dttime = decode(p_status_type,'CX',to_char(sysdate,'DD-MON-YYYY HH24:mi:ss'),'UR',to_char(sysdate,'DD-MON-YYYY HH24:mi:ss'),null)
         , current_status = 'PO'
         , sum_status = decode(p_status_type,'EO','X','C')
         , sum_stat_dttime = SYSDATE
    WHERE voucher_num = p_voucher_num;
          v_err_cd := sqlcode;
          v_err_msg := sqlerrm;
          open p_err_cur for select v_err_cd err_code,v_err_msg err_msg from dual;
    EXCEPTION
            dbms.output.put_line('completed200');
    /* PG 02/10 handled 'partial fill order' exception */
      when wait_for_more then
          v_err_cd := 0;
          v_err_msg := 'ORA-0000: normal, successful completion';
          pr_xop_log_errors('Partially filled; Waiting for more - Activity qty:' || to_char(v_sum_activity_qty)|| ' pk_xop_subsales.pr_process_exer');
          open p_err_cur for select v_err_cd err_code,v_err_msg err_msg from dual;
      when exceeds_order_qty then
          v_err_cd := sqlcode;
          v_err_msg := sqlerrm;
          open p_err_cur for select v_err_cd err_code,v_err_msg err_msg from dual;
          pr_xop_log_errors('Activity quantity exceeded the Order_qty - Activity qty: ' || to_char(p_activity_qty) || ' pk_xop_subsales.pr_process_exer');
      when others then
          v_err_cd := sqlcode;
          v_err_msg := sqlerrm;
          open p_err_cur for select v_err_cd err_code,v_err_msg err_msg from dual;
          pr_xop_log_errors('ErrorCode '||SQLCODE||' with ErrorMessage as '||SQLERRM||' has occured for '||user||'pk_xop_subsales.pr_process_exer');
                dbms.output.put_line('completed125');
    END pr_process_exer;
    Hi friends, any1 help me out how to define the ref-cursor in declaration section, and how to find at what situation the constraint error occurred..

    956684 wrote:
    Hi,.
    Friends plz help me out ..how to debug and find the exact position of the constraint violation..thank you for the help..There isn't a way to trace it unless you have caught the exception raised.
    As a way to start the debug, you will have to monitor
    1. All DML's against the Table on which you have constraint. More specifically, the DML's that act on the column you have constraint on.
    2. Use Exception Handling, to log the Error and the data that causes the constraint to fail.
    3. Do not forget to monitor the Triggers, if they are used, that would write some data into the column you have constraint on.
    Or
    Another way to trace is:
    select *
      from user_source
    where lower(text) like '%your_table_name%';
    order by type, name, line;Look at the lines, exclude that are in Declaration or in SELECT statements and target the DML's.
    Looking at the un-formatted code you posted, this statement looks like a culprit.
    INSERT INTO tb_ml_exer_upload
    (exer_num,exer_seq,
    exer_dt, written_flag, backout_flag, output_line,
    je_flag, opts_exer,
    tot_tax,shrs_sold,comm_value,tot_fee,
    mkt_prc,exer_type, soc_sec,
    name_first, name_mi,
    name_last,check_addr_1,check_addr_2,check_addr_3,
    check_addr_4,check_addr_5,city,state,zip,country,
    city_state_zip_country,
    p_name,opt_addr1,opt_addr2,opt_addr3,opt_addr4,
    opt_addr5,opt_addr6,
    settle_dt,send_to_citibank_flag,
    dom_chek_distr,foreign_currency_code,
    distribution_method,wire_seq_no,
    cusip_num, ml_retail_account,multi_curr_handling_fee,
    ml_sec_num, corp_name,upd_optionee_addr,
    outbound_flag, -- make it N
    corp_symbol,taxwire_approve, -- make it not applicaplabe
    exersource,
    mail_cd, sp_mail_cd,
    backup_withholding,
    user_id,
    acct_num_othr)
    VALUES(v_order_dtls.exer_num,0,v_order_dtls.exer_date,'N','N',NULL,
    -- PG 12/12/05 Changed to populate the je_flag based on dom_chek_distr 'D',
    -- PG 12/16/05 JE should not be generated for international checks.. So 'Y' always
    'Y', --je_flag
    v_order_dtls.opts_exer,0,--total tax will be 0.
    v_order_dtls.opts_exer, --shrs_sold,
    v_order_dtls.comm_value,
    --SPIF# 43161- replaced nvl(v_order_dtls.fixed_fee1, 0) with v_fixedfee1
    v_fixedfee1 + nvl(v_order_dtls.fixed_fee3,0) + nvl(v_order_dtls.sec_fee,0), --v_order_dtls.fees_amt,
    round(v_order_dtls.exec_price, 4),v_order_dtls.exer_type,
    LPAD(v_order_dtls.ssn,9,'0'), --v_order_dtls.ssn, Modified by Suresh on 02/08/07 for SPIF # 37210
    v_order_dtls.name_first,v_order_dtls.name_mi,v_order_dtls.name_last,
    v_order_dtls.check_addr_1,v_order_dtls.check_addr_2,v_order_dtls.check_addr_3,
    v_order_dtls.check_addr_4,v_order_dtls.check_addr_5,nvl(v_order_dtls.city,v_opt_dtls.city),
    nvl(v_order_dtls.state,v_opt_dtls.state),nvl(v_order_dtls.zip,v_opt_dtls.zip),
    nvl(v_order_dtls.country,v_opt_dtls.country),
    SUBSTR(nvl(v_order_dtls.city||v_order_dtls.state||v_order_dtls.zip||v_order_dtls.country,
    v_opt_dtls.city_state_zip_country),1,34), -- COLUMN LENGTH MAX IS 35
    v_opt_dtls.p_name,v_opt_dtls.opt_addr1,v_opt_dtls.opt_addr2,v_opt_dtls.opt_addr3,
    v_opt_dtls.opt_addr4,v_opt_dtls.opt_addr5,v_opt_dtls.opt_addr6,
    v_settle_dt,decode(v_order_dtls.distribution_method,'W','Y','D','Y','C','Y','D'),
    v_order_dtls.dom_chek_distr,v_order_dtls.foreign_currency_code,
    v_order_dtls.distribution_method,v_order_dtls.wire_seq_no,
    v_cusip_num,v_order_dtls.acct_num,v_order_dtls.multi_curr_handling_fee,
    -- nvl(fn_get_sec_num(replace(substr(p_voucher_num,1,7),'SSO','XOP'),v_order_dtls.symbol),v_ml_sec_num),
    nvl(fn_get_sec_num(v_ivr_plan_num, v_order_dtls.symbol),v_ml_sec_num),
    v_compy_nme,v_order_dtls.upd_optionee_addr,
    'N', --'N' is for outbound flag.
    v_order_dtls.symbol,'D', --'D' for taxwires disabled
    'S', -- 'S' for source being subsequent sale.
    v_mail_cd, --need to get mail_Cd??
    v_order_dtls.sp_mail_cd,v_order_dtls.backup_withholding,
    user,v_order_dtls.acct_num_othr);What is the Table structure of tb_ml_exer_upload and what columns do you have constraints on?
    Which column of the table tb_ml_exer_upload is your Primary Key (because constraint name mentions pk_tb_ml_exer_upload)?
    Edited by: Purvesh K on Jan 4, 2013 12:57 PM

  • I just purchased a software upgrade.  I received an e-mail that says, "To install your software, you simply launch the Mac App Store, click "Redeem"• found under Quick Links and enter your content code(s)." How do I do this??

    I just purchased a software upgrade to OSX Lion.  I received an e-mail that says, "To install your software, you simply launch the Mac App Store, click "Redeem"• found under Quick Links and enter your content code(s).  How do I "launch the Mac App Store?"

    Assuming you are running OS X 10.6.6 or later (10.7.x Lion, 10.8.x Mountain Lion or 10.9.x Mavericks), go to the Apple Menu (top left-hand corner of the screen)>App Store and it should become clear from there.

  • HT203175 After upgrading to version 11.0.4.4 I get a "Itunes has stopped working" message when I try to start a movie on my PC. I have updated Quick time and previous version of Itunes worked great.

    After upgrading to version 11.0.4.4 I get a "Itunes has stopped working" message when I try to start a movie on my PC. I have updated Quick time and previous version of Itunes worked great.

    One thing is for sure, and that is if the only page i visit is the Google homepage (not logged in) or this site (mozilla forum), the problem does not occur, ever. I can't make it happen.
    If i visit yahoo.com (not logged in) (or ighome.com, logged in), as examples, it happens every time.

Maybe you are looking for

  • Changing ken burns on only one photo

    Hi all, I have a slideshow which I autogenerated the ken burns effect. I have one photo that constantly gets clipped and you can't see it. How can I turn off the ken burns for that ONE photo....? I have searched the forum...I tried the auto kb's in s

  • Logic Pro not loading!

    Hi just installed a few new AU's Logic now does not load, it just stays stuck on the loading screen with "Updating information about audio unit plug-ins" so tried removing all instances of the newly loaded AU's and associated files and restarting and

  • Transfer of PE

    I am running Photoshop Elements 9.0.3. Purchased via educational license. I am planning to either buy a new computer or re-install Micorosoft Windows 7. In either case, how do I transfer my Photoshop to the new situation?

  • Correct solution for login loop on admin account

    Hello, Can any mac experts help me find the correct solution for my log in loop problem. I have been using my macbook pro for about six years without any touble, its a 2.16 GHz intel core 2 duo running OS X 10.6.8. Yesterday when I went to log in to

  • Can't install CC Desktop Windows 7

    Hello everyone. I have a problem. I reinstall windows 7 everthing is ok but I can't install cc desktop. Pls help.