Please let me plsql code standards

Hi all,
Please let me know if i am missing any plsql standards
IF (    curr_rec.rqst_ctgry_lkpcd = 'AR'
                AND curr_rec.unfrm_blng_facility_type_code = 'B'
            THEN
               NULL;
            ELSIF (    curr_rec.rqst_ctgry_lkpcd <> 'AR'
                   AND curr_rec.unfrm_blng_facility_type_code = 'A'
            THEN
               NULL;
            ELSE
               INSERT INTO pa_request_run_error
                           (pa_rqst_run_err_sid,
                            pa_error_sid,
                            pa_rqst_sid, rsltn_user_acct_sid, run_nmbr,
                            erroneous_data_value,
                            error_action_lkpcd, error_rsltn_date,
                            rsltn_comment, oprtnl_flag, created_by,
                            created_date, modified_by, modified_date,
                            prvs_run_nmbr
                    VALUES (pa_request_run_error_seq.NEXTVAL,
                            (SELECT pa_error_sid
                               FROM pa_error
                              WHERE pa_error_nmbr = '7033'),
                            curr_rec.pa_rqst_sid, NULL, 1,
                               curr_rec.rqst_ctgry_lkpcd
                            || '-'||curr_rec.unfrm_blng_facility_type_code
                            'F', NULL,
                            NULL, 'A', 30,
                            SYSDATE, 30, SYSDATE,
                            NULL
            END IF;Regards,
P Prakash
Edited by: BluShadow on 27-May-2011 08:42
added {noformat}{noformat} tags as per the {message:id=9360002} FAQ
Edited by: BluShadow on 27-May-2011 08:47
Also fixed the <> issues as described in the FAQ                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

I do not like if-elseif constructs that much. These tend to get horrible warped and abused. Especially after a few years of code maintenance and enhancements.
My preference is instead for CASE statements.
I see that you are hardcoding literals in your code like +"A'+ and +'B'+ and so on. This is not readable, re-usable or easy maintainable. Consider instead a constants package that defines constants for these literals instead. You now have a single package and place for defining literals to use - easy to update and maintain. And vastly improves the readability of the code. E.g.
{code}
create or replace package Const as
--// active facility types (or whatever..)
C_ACTIVE_FACILITY_TYPE constant varchar2(1) := 'A';
.. rest of the constants
end;
{code}
Now you +IF+ condition can use this constant - resulting in more readable code and code that is a lot easier to maintain.
Also, as far as standards go. Writing long blocks of code in an +IF+ block (or +CASE+ block), seriously hampers the readability of the code. And re-usability.
So rather take that large block of code, modularise it, and then call that module from the +IF+ or +CASE+ code block.
A basic standard to aim for is to make code read like a story - especially at the "higher" levels (the main code blocks that initiate the processing and control the process flow).
A very simple example - the following code indicates very clearly the process flow being done. And is a lot better than not modularising and instead have large swathes of code blocks:
{code}
begin
loop
fetch invoiceCur bulk collect into invoiceList limit 100;
for i in 1..invoiceList.Count
loop
ProcessInventory( invoiceList(i) );
BillCustomer( invoiceList(i) );
ProcessShipping( invoiceList(i) );
NotifyCustomer( invoiceList(i) );
end loop;
exit when c%NotFound;
end loop;
close c;
end;
{code}

Similar Messages

  • Please help regarding PLSQL coding standards

    Hi,
    Can you please send any document for PL/SQL coding standards,
    Please help.. I did nt find any good resources on net regarding..
    Pleease help me if any pdf regarding are exitst to my mail id
    [email protected]
    Thanks and Regards
    asp

    I did nt find any good resources on net regarding..Here is a list from the net for you to start with (courtesy of many of the fellow posters here in these forums), and there will be plenty more. Just need to search correctly.
    http://www.redhat.com/docs/manuals/waf/rhea-dg-waf-en-6.0/ap-sql-standards.html
    http://www.orafaq.com/faqplsql.htm
    http://www.williamrobertson.pwp.blueyonder.co.uk/documents/plsqlcodingstandards.html
    http://www.orafaq.com/node/48
    http://apex.oracle.com/pls/otn/f?p=2853:4:11598658413321972351::NO::P4_QA_ID:3262
    http://www.bbc.co.uk/guidelines/newmedia/technical/databases.shtml
    Message was edited by:
    Kamal Kishore
    Message was edited by:
    Kamal Kishore

  • Please let me about the SAP transaction code(s) from which I will get month

    Please let me about the SAP transaction code(s) from which I will get monthly
    Material or product wise listing of cost of finished goods sold & lying as stock

    Dear parameswar
    Go to SE16, give the table MBEW and select the following fields:-
    VERPR  -  If you want to see the moving average price of that particular material
    STPRS  -  If you want to see the Standard price of that particular material
    SALK3   -  If you want to see the total valuated stock of that particular material
    To see how much stock is available, run MMBE and execute.  You can also check in MC.9 (mcdot9)
    thanks
    G. Lakshmipathi

  • Dear Guru's Please let me know the T.code's for the fallowing

    Dear Guru's,
    Please let me know the transation codes to see
    List of Open sales orders based on the delivery block (other than VA05)
    List of invoices not yet realesed to account.
    List of Invoices which are not cleared(for which f-32 not happend)
    List of deliveries for which PGI happed not invoiced.
    Regards,
    Madhu
    Highly rewarded

    Dear Madhu,
    List of Open sales orders based on the delivery block (other than VA05) - VA14L
    List of invoices not yet realesed to account. - VFX3
    List of Invoices which are not cleared(for which f-32 not happend) - FBL5N (Billing Type - BL against which Collection Doc. DZ is not found)
    List of deliveries for which PGI happed not invoiced. - VF04 (not sure, as this is billing due list; and it may contain delivery doc. w/o PGI. Just check)
    Please check with VL06F. Here, under Tab: Status: Outb. Delivs, there is field: Billing status
    Maintain entry in to this field as "A - Not yet Processed"
    Best Regards,
    Amit

  • Please let me know how to display source code

    Hi everyone.
    my name is Kazuma working in Japan.
    We have a problem with SE38.
    We transport one of executives program, which made from other development system, to our system.
    When we use SE38 and display botton, we encounter short dump like below and can't see source code.
    We want to know how we change BASIS or program.
    If somebody know similar situation, please let us know.
    >>ERROR MESSAGE
    The Import dataset has been destroyed
    What happened?
    The current ABAP/4 program "SAPLLOCAL_EDT1" had to be terminated because one of the statements could not be executed
    This is probably due to an error in the ABAP/4 program
    Error analysis
    The dataset could not be imported because it was in an unexpected format
    This is usually because the dataset has been destroyed as a result of directly manipulating the IMPORT/EXPORT data by other means (such as explicitly deleting parts of the dataset with SQL commands instead of using DELETE FROM DATABASE, u2026)
    In this case, the dataset header is already invalid
    In other words: The version ID of the dataset is invalid
    System environment
    SAP Release          4.6C
    Application server          sdax31
    Operating system          SunOS
    Release                    5.8
    Hardware type          sun4us
    Database server          sdax31
    Database type          ORACLE
    Database owner          SAPR3
    SAP kernel          46D
    Patch lebel          1646
    Patch text          ""
    Information of where termination occurred
    The termination occurred in the ABAP/4 program "SAPLLOCAL_EDT1" in "GET_MODIFICATION_INFORMATION"
    The main program was "RSABAPPROGRAM"
    The termination occurred in line 143 of the source code of program "LLOCAL_EDT1U36" (when calling the editor 1430)
    Edited by: kazuma mukai on Mar 3, 2009 6:34 PM

    Welcome to SCN
    Try to
    create the same program in your DEV client , by cut & paste the code from the other envionment , this will create a transport, activate the program and transport.
    This will be roundway solution
    Do you have any previous version to this program in the version management?

  • Please let me know the sample format of the standard time characterstics..

    Hi Please let me know the sample format of the standard time characterstics..
    Calendar Day-0CALDAY-->
    Calendar Year/Month-->
    Calendar month-->
    Quarter  -->
    Calendar year/quarter-->
    Calendar Year/Week-->
    Calendar Year-->
    Fiscal year / period-->
    Posting period-->
    Fiscal year variant-->
    Fiscal year-->
    Halfyear-->
    Weekday-->
    When coming to format of 0calday i am confused whther to use  20111024 (or) 20112410
    Thanks...all

    HI
        check the link
    http://www.sapdb.org/7.4/htmhelp/48/0d8018b4f211d2a97100a0c9449261/content.htm
    Format
    EUR
    'DD.MM.YYYY'
    INTERNAL
    'YYYYMMDD'
    ISO/JIS
    'YYYY-MM-DD'
    USA
    'MM/DD/YYYY'

  • Please let me about the COIS SAP transaction code(s)

    Please let me about the SAP transaction code(s) from which I will get monthly data of the folowing:
    Material or product wise listing of raw materials used in WIP & converted to Finished goods remaining as closing stock
    Edited by: Isabelle Britten on Jul 21, 2008 12:45 PM

    HI,
    Following are the different t.code for the WIP Reports.
    FAIP0 WIP Clearing
    KKA1 Order Results Analysis and WIP Calc.
    KKA1P Order Results Analysis and WIP Calc.
    KKA2 Project Results Anal. and WIP Calc.
    KKA2P Project Results Anal. and WIP Calc.
    KKAG WIP: Display Worklist
    KKAO WIP Calc.: Collective Processing
    KKAQ Display WIP - Collective Processing
    KKAS WIP Calc. for Product Cost Coll.
    KKAT WIP Display for Product Cost Coll.
    KKAV WIP Calculation for Cost Object Hier
    KKAW WIP Display Cost Object Hierarchy
    KKAX WIP Calculation for Order
    KKAY WIP Display for Order
    KOB8 Orders: WIP/Results Anal. Line Items
    You can find Goods receipt Report via MB51 (Selcting Mov. Type 101 ).
    Regards,
    Dhaval
    Edited by: Dhaval Choksi on Jul 21, 2008 1:44 PM

  • Please let me about the SAP transaction code(s)

    Please let me about the SAP transaction code(s) from which I will get monthly data of the folowing:
    Material or product wise listing of raw materials used in WIP & converted to Finished goods remaining as closing stock

    Dear parameswar
    The simple work is go to MM60, give material type ROH (for raw material) and execute.  You will get list of all raw materials.  Make a note of it and now go to MB51, give those material codes and give movement type 261 for issue from stores and execute. You will get raw materialwise details of how much quantity has been issued to WIP.  The same exercise you have to do for FERT.
    thanks
    G. Lakshmipathi

  • Looks like a bug in SAP code - Please let me know if you have faced it

    Hi All,
    My requirement - to protect a range in excel sheet and download the excel to PC
    but this particular method provided by SAP does not work
    CALL METHOD spreadsheet->protect_range
           EXPORTING name      = name
                     protect   = protect
                     no_flush  = no_flush
           IMPORTING error     = error
                     retcode   = retcode.
    The full sheet protection method does work. Please let me know incase you have come across this issue.

    JUST FOUND THIS ON NEWEGG!
    Rating: 1/5Major problems, but HP added free warranty support to fix
    This review is from: HP Pavilion Elite HPE-400F (BT470AA#ABA) Desktop PC Phenom II X4 945 (3.0GHz) 8GB DDR3 1TB HDD Windows 7 Home Premium 64-bit
    Pros: HP is offering a North America Limited Warranty Service Enhancement which extends the warranty on these because of numerous reported issues! Free motherboard replacement.
    http://h10025.www1.hp.com/ewfrf/wc/document?docnam​e=c03199423&cc=us&dlc=en&lc=en&product=4300938
    Cons: Numerous users report blue screening, random reboots, or no boot without beeps!
    BUT I HAD TO STUMBLE ON TO THIS, AFTER MINE QUIT!
    NOW THEY SAY, SORRY, ALL OUT OF THEM, AND YOUR OUT OF WARRANTY,  AND S * * * OUT OF LUCK & $800.00!!!!!!!!!!!!!

  • Please enter valid Security Code

    My iTunes account wont let me download any apps or update them either because it says that my security code for my card is wrong. I have reentered everything about the card including the security code and it still keeps saying "Please enter valid security code". I'm looking at the security code and I dont know what to do about it. I was going to try and email Apple about it but I cannot find an email address for them and its complicated trying to contact them. How to do I fix this problem or email Apple about it?

    Have a look here  >  http://support.apple.com/kb/TS1646
    And there is this...
    Contact iTunes Customer Service
    Apple  Support  iTunes Store  Contact Us

  • How to write a file in unix server through oracle plsql code

    Hi All,
    My requirement is to create and write a file (any file for eg txt file) in unix box with in a specified directory through oracle plsql code.
    Oracle sits in windows server.
    using utl_file package we can create directory where oracle resides and write it there in oracle server in our case windows..
    But here we need to create,write a file but in unix server which is different server than where the oracle server resides..
    we are using Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    PL/SQL Release 11.2.0.2.0 - Production
    Can any one one please help me out in this issue...
    Thanks in Advance.
    Prakash

    Mr Prakash,
    Why are you asking this question multiple times in every forum you can spell?
    Valid responses have been presented to you already two times.
    Can you explain why you can't follow them up, but continue to abuse this forum by repeating doc questions?
    Sybrand Bakker
    Senior Oracle DBA

  • How to register a custom plsql code

    Hi
    i have wrritten a custom plsql code for my Overtime entries validation for payroll processing.
    Can any body tell me how to register it in application.
    Secondly i want to get the output file generated by report submission on my desktop.i want to know where the report output files for HR and payroll are stored so that i can get them through FTP.
    Regards

    if you want to integrate your plsql into a fast formula, please download the fast formula guide from metalink. Or ask your functional payroll consultant.
    All reports and processes in Oracle Apps are handled via concurrent programs and requests. When a concurrent request is finished, click on the output button, and depending from the filetype, your browser will take action.
    All concurrent output is also stored on the concurrent server. Ask your apps dba where she mapped the concurrent output directory. But i do not see why you should need this.

  • URGENT HELP: When some users submit, application carries empty fields from html components to plsql code

    Hi APEX users and developer, especially forum's active users, please get me rid of this problem because it is really very bad situation.
    I have a real trouble with application. It behaves unusual. Application is used by 60 users but only 3 of them have these problem and they can not use the application anymore.
    Application is
    http://apex.oracle.com/pls/apex/f?p=70547
    After fields are filled and some rows checked from tabular form in page, user submits the page. Process called newReyestr calls plsql procedure from package with inputs from page. But only same 3 users get empty fields in plsql code. I see it just after when the first line stepped in procedure.
    So, "what is the problem?"

    Hi NoGot,
    you know, I have not written big quote. The code was big. But it has no any meaning. Because problem is in first line. No need to understand it.
    There is no any difference between those users. They also tried it from different browser and even computers.
    BTW: I am not russian.

  • Hey guys i got a problem connecting with itunes always giving me ox80090318 if u know the answer please let me know thx

    hey guys i got a problem connecting with itunes always giving me ox80090318 if u know the answer please let me know thx

    Hello Makiaveli,
    It sounds like you are getting this error code when you are trying to access the iTunes Store.
    I found this article with this error listed in the symptoms section, for you that should help troubleshoot the issue named:
    Apple software on Windows: May see performance issues and blank iTunes Store
    http://support.apple.com/kb/TS4123
    Resolution
    The cause for these issues is a program that monitors the Winsock protocol for Windows conflicting with Apple software. These programs usually use a Layered Service Provider (LSP) that can help identify the particular program installed. The programs that monitor this protocol have a variety of purposes, including security software, content filtering, and optimization of network traffic.
    To find the LSP:
    Download Autoruns for Windows from Microsoft
    Look for Autoruns.ZIP and open the compressed folder.
    After reviewing the contents and the license, drag autoruns.exe to the desktop.
    Open Autoruns.
    Click on the tab that says Winsock Providers.
    A list of items should appear. A column showing the publisher should be available.
    For items other than Bonjour, which is from Apple, check with the publisher for updates to resolve the conflict between their software and Apple software.
    If the publisher is unfamiliar to you, you may be able to use the table below to find out more information about the origin of the modifications to Windows.
    Some of the publishers and programs that are known to have versions with a conflict are listed below:
    Product or Publisher
    LSP Name
    Bigfoot Networks / Killer Gaming
    BfLLR over [MSAFD Tcpip [TCP/IPv6]]
    Bsecure
    Bsecure  over [MSAFD Tcpip [TCP/IP]]
    Bullguard
    BGLsp over [MSAFD Tcpip [TCP/IP]]
    Bytemobile, Inc.
    BMI over [MSAFD Tcpip [TCP/IP]]
    CA / Total Defense Internet Security
    LAYERED_PROVIDER over [MSAFD Tcpip [TCP/IPv6]]
    ContentWatch / Net Nanny
    CWALSPSYS CWALSP MSAFD Tcpip [TCP/IP]
    Covenant Eyes
    Covenant Eyes Monitoring over [MSAFD Tcpip [TCP/IP]]
    Dr. Web
    DrWebSP.4 over [MSAFD Tcpip [TCP/IP]]
    Earthlink Total Access
    PropelLSP over [MSAFD Tcpip [TCP/IP]]
    Eset
    NOD32 protected [MSAFD Tcpip [TCP/IP]]
    Fourelle Venturi
    VENTURI_TP [MSAFD Tcpip [TCP/IP]]
    FoxyProxy
    FoxyProxy Service Provider over [MSAFD Tcpip [TCP/IP]]
    Hide My IP / My Privacy Tools
    My Privacy Tools - LSP over [MSAFD Tcpip [TCP/IP]]
    MegaUpload / MegaKey
    msadmid over [MSAFD Tcpip [TCP/IP]]
    Netintelligence
    NIHLSP over [MSAFD Tcpip [TCP/IP]]
    Netscape Internet Service
    SlipStream LSP over [MSAFD Tcpip [TCP/IP]]
    Netsweeper
    Liger over [MSAFD Tcpip [TCP/IP]]
    Norman/Norman Security Suite
    NLF over [MSAFD Tcpip [TCP/IP]]
    Panda AntiVirus
    PAV_LAYERED over [MSAFD Tcpip [TCP/IP]]
    PC Tools / Spyware Doctor
    PCTOOLS over [MSAFD Tcpip [TCP/IP]]
    PureSight Internet Content Filter
    Winsock over MSAFD Tcpip [TCP/IP]
    Ratajik Software StationRipper
    AVSDA over [MSAFD-Tcpip [TCP/IP]
    Safe Eyes / McAfee Family Protection
    Internet Content Filter over [MSAFD Tcpip [TCP/IP]]
    Sendori
    SendoriLSP over [MSAFD Tcpip [TCP/IP]]
    SpeedBit Video Accelerator
    SBLSP over [MSAFD Tcpip [TCP/IP]]
    TellyAbroad
    EasyHideIP over [MSAFD Tcpip [TCP/IP]]
    Trend Micro
    Trend Micro LSP over [MSAFD Tcpip [TCP/IP]]
    VMWare
    VMCI sockets DGRAM
    Wave / Embassy Trust Suite
    Wave Systems Kerberos LSP over [MSAFD Tcpip [TCP/IP]]
    XFire
    Xfire_LSP MSAFD Tcpip [TCP/IP]
    Once you've identified the third-party software that installed the LSP, you should check for updates. If the software is your security software, see iTunes: Troubleshooting security software issues for additional information. 
    Bytemobile is usually associated with cellular data connection software. You may want to check if your provider has instructions to disable or uninstall that portion of the software, such as these instructions from AT&T.
    Note:  If unsure on the origin of your LSP, you may try to locate vendor information to determine which software is responsible for the non-default value here.
    Thank you for using Apple Support Communities.
    Cheers,
    SterlingD

  • Hi guys please give me sample code for call transaction that handles error

    hi guys, please give me sample code for call transaction that handles error,
    please send me the sample code in which there should be all decleration part and everything, based on the sample code i will develop my code.
    please do help me as it is urgent.
    thanks and regards.
    prasadnn.

    Hi Prasad,
    Check this code.
    Source Code for BDC using Call Transaction
    *Code used to create BDC
    *& Report  ZBDC_EXAMPLE                                                *
    *& Example BDC program, which updates net price of item 00010 of a     *
    *& particular Purchase order(EBELN).                                   *
    REPORT  ZBDC_EXAMPLE  NO STANDARD PAGE HEADING
                          LINE-SIZE 132.
    Data declaration
    TABLES: ekko, ekpo.
    TYPES: BEGIN OF t_ekko,
        ebeln TYPE ekko-ebeln,
        waers TYPE ekko-waers,
        netpr TYPE ekpo-netpr,
        err_msg(73) TYPE c,
    END OF t_ekko.
    DATA: it_ekko  TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_ekko  TYPE t_ekko,
          it_error TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_error TYPE t_ekko,
          it_success TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
          wa_success TYPE t_ekko.
    DATA: w_textout            LIKE t100-text.
    DATA: gd_update TYPE i,
          gd_lines TYPE i.
    *Used to store BDC data
    DATA: BEGIN OF bdc_tab OCCURS 0.
            INCLUDE STRUCTURE bdcdata.
    DATA: END OF bdc_tab.
    *Used to stores error information from CALL TRANSACTION Function Module
    DATA: BEGIN OF messtab OCCURS 0.
            INCLUDE STRUCTURE bdcmsgcoll.
    DATA: END OF messtab.
    *Screen declaration
    SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME
                                        TITLE text-001. "Purchase order Num
    SELECT-OPTIONS: so_ebeln FOR ekko-ebeln OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK block1.
    SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME
                                        TITLE text-002. "New NETPR value
    PARAMETERS:  p_newpr(14)   TYPE c obligatory.  "LIKE ekpo-netpr.
    SELECTION-SCREEN END OF BLOCK block2.
    *START-OF-SELECTION
    START-OF-SELECTION.
    Retrieve data from Purchase order table(EKKO)
      SELECT ekkoebeln ekkowaers ekpo~netpr
        INTO TABLE it_ekko
        FROM ekko AS ekko INNER JOIN ekpo AS ekpo
          ON ekpoebeln EQ ekkoebeln
       WHERE ekko~ebeln IN so_ebeln AND
             ekpo~ebelp EQ '10'.
    *END-OF-SELECTION
    END-OF-SELECTION.
    Check data has been retrieved ready for processing
      DESCRIBE TABLE it_ekko LINES gd_lines.
      IF gd_lines LE 0.
      Display message if no data has been retrieved
        MESSAGE i003(zp) WITH 'No Records Found'(001).
        LEAVE TO SCREEN 0.
      ELSE.
      Update Customer master data (instalment text)
        LOOP AT it_ekko INTO wa_ekko.
          PERFORM bdc_update.
        ENDLOOP.
      Display message confirming number of records updated
        IF gd_update GT 1.
          MESSAGE i003(zp) WITH gd_update 'Records updated'(002).
        ELSE.
          MESSAGE i003(zp) WITH gd_update 'Record updated'(003).
        ENDIF.
    Display Success Report
      Check Success table
        DESCRIBE TABLE it_success LINES gd_lines.
        IF gd_lines GT 0.
        Display result report column headings
          PERFORM display_column_headings.
        Display result report
          PERFORM display_report.
        ENDIF.
    Display Error Report
      Check errors table
        DESCRIBE TABLE it_error LINES gd_lines.
      If errors exist then display errors report
        IF gd_lines GT 0.
        Display errors report
          PERFORM display_error_headings.
          PERFORM display_error_report.
        ENDIF.
      ENDIF.
    *&      Form  DISPLAY_COLUMN_HEADINGS
          Display column headings
    FORM display_column_headings.
      WRITE:2 ' Success Report '(014) COLOR COL_POSITIVE.
      SKIP.
      WRITE:2 'The following records updated successfully:'(013).
      WRITE:/ sy-uline(42).
      FORMAT COLOR COL_HEADING.
      WRITE:/      sy-vline,
              (10) 'Purchase Order'(004), sy-vline,
              (11) 'Old Netpr'(005), sy-vline,
              (11) 'New Netpr'(006), sy-vline.
      WRITE:/ sy-uline(42).
    ENDFORM.                    " DISPLAY_COLUMN_HEADINGS
    *&      Form  BDC_UPDATE
          Populate BDC table and call transaction ME22
    FORM bdc_update.
      PERFORM dynpro USING:
          'X'   'SAPMM06E'        '0105',
          ' '   'BDC_CURSOR'      'RM06E-BSTNR',
          ' '   'RM06E-BSTNR'     wa_ekko-ebeln,
          ' '   'BDC_OKCODE'      '/00',                      "OK code
          'X'   'SAPMM06E'        '0120',
          ' '   'BDC_CURSOR'      'EKPO-NETPR(01)',
          ' '   'EKPO-NETPR(01)'  p_newpr,
          ' '   'BDC_OKCODE'      '=BU'.                      "OK code
    Call transaction to update customer instalment text
      CALL TRANSACTION 'ME22' USING bdc_tab MODE 'N' UPDATE 'S'
             MESSAGES INTO messtab.
    Check if update was succesful
      IF sy-subrc EQ 0.
        ADD 1 TO gd_update.
        APPEND wa_ekko TO it_success.
      ELSE.
      Retrieve error messages displayed during BDC update
        LOOP AT messtab WHERE msgtyp = 'E'.
        Builds actual message based on info returned from Call transaction
          CALL FUNCTION 'MESSAGE_TEXT_BUILD'
               EXPORTING
                    msgid               = messtab-msgid
                    msgnr               = messtab-msgnr
                    msgv1               = messtab-msgv1
                    msgv2               = messtab-msgv2
                    msgv3               = messtab-msgv3
                    msgv4               = messtab-msgv4
               IMPORTING
                    message_text_output = w_textout.
        ENDLOOP.
      Build error table ready for output
        wa_error = wa_ekko.
        wa_error-err_msg = w_textout.
        APPEND wa_error TO it_error.
        CLEAR: wa_error.
      ENDIF.
    Clear bdc date table
      CLEAR: bdc_tab.
      REFRESH: bdc_tab.
    ENDFORM.                    " BDC_UPDATE
          FORM DYNPRO                                                   *
          stores values to bdc table                                    *
    -->  DYNBEGIN                                                      *
    -->  NAME                                                          *
    -->  VALUE                                                         *
    FORM dynpro USING    dynbegin name value.
      IF dynbegin = 'X'.
        CLEAR bdc_tab.
        MOVE:  name TO bdc_tab-program,
               value TO bdc_tab-dynpro,
               'X'  TO bdc_tab-dynbegin.
        APPEND bdc_tab.
      ELSE.
        CLEAR bdc_tab.
        MOVE:  name TO bdc_tab-fnam,
               value TO bdc_tab-fval.
        APPEND bdc_tab.
      ENDIF.
    ENDFORM.                               " DYNPRO
    *&      Form  DISPLAY_REPORT
          Display Report
    FORM display_report.
      FORMAT COLOR COL_NORMAL.
    Loop at data table
      LOOP AT it_success INTO wa_success.
        WRITE:/      sy-vline,
                (10) wa_success-ebeln, sy-vline,
                (11) wa_success-netpr CURRENCY wa_success-waers, sy-vline,
                (11) p_newpr, sy-vline.
        CLEAR: wa_success.
      ENDLOOP.
      WRITE:/ sy-uline(42).
      REFRESH: it_success.
      FORMAT COLOR COL_BACKGROUND.
    ENDFORM.                    " DISPLAY_REPORT
    *&      Form  DISPLAY_ERROR_REPORT
          Display error report data
    FORM display_error_report.
      LOOP AT it_error INTO wa_error.
        WRITE:/      sy-vline,
                (10) wa_error-ebeln, sy-vline,
                (11) wa_error-netpr CURRENCY wa_error-waers, sy-vline,
                (73) wa_error-err_msg, sy-vline.
      ENDLOOP.
      WRITE:/ sy-uline(104).
      REFRESH: it_error.
    ENDFORM.                    " DISPLAY_ERROR_REPORT
    *&      Form  DISPLAY_ERROR_HEADINGS
          Display error report headings
    FORM display_error_headings.
      SKIP.
      WRITE:2 ' Error Report '(007) COLOR COL_NEGATIVE.
      SKIP.
      WRITE:2 'The following records failed during update:'(008).
      WRITE:/ sy-uline(104).
      FORMAT COLOR COL_HEADING.
      WRITE:/      sy-vline,
              (10) 'Purchase Order'(009), sy-vline,
              (11) 'Netpr'(010), sy-vline,
              (73) 'Error Message'(012), sy-vline.
      WRITE:/ sy-uline(104).
      FORMAT COLOR COL_NORMAL.
    ENDFORM.                    " DISPLAY_ERROR_HEADINGS
    Hope this resolves your query.
    Reward all the helpful answers.
    Regards

Maybe you are looking for

  • Can a 2nd Gen iPod Touch update to the 4.2 os?

    I have been trying to update for two days now (not counting my various attempts over the past few months) and I'm getting absolutely nowhere. iTunes tells me that I need to move stuff from my iPod to the library - which I can't seem to do, so I hit '

  • Working in Sql, not working in Stored procedure

    Dear friends, I am puzzled about this strange working of Oracle , although I know that there is some problem with my code. I paste my code here. The delete statement is working properly in SQL Plus 8.0, but it is not working when I call this stored p

  • Help in finding Partition_name, no. of rows in each partition

    hello all, Please help me in finding out Partition_name, no. of rows in each partition, max_value in each partition. for a paritioned table Please help on this. Edited by: user577981 on Jan 2, 2009 9:13 PM

  • Anything similiar to Beat Detective in LP7?

    I'm looking for a way to chop up a loop similar to the way that Beat Detective in ProTools works. If you are unfamiliar, it basically analyzes the loop that you have and places markers at the locations where it thinks each sound in the beat is (at th

  • How do I update to a newer version of Adobe Photoshop Elements?

    I have Adobe Photoshop Elements version 6.0 for Mac. How do I update to a newer version? Thanks.