Electronic bank statement importing error

Dear Guru,
We've just upgraded support package upto last version and then happened to see errors while importing account statements in SWIFT MT940 format.
Message says,
"House bank table: No entry with bank key  and acct 40443751657275"
Procedure
Maintain the house bank tables.
Actually, there are bank key, account number in SAP.
This error message is somewhat misleading.
Is there any special programe to generate "Electronic bank statement"?
Thanks for advice in advance.
J.

Look like there is a solution if we put bank account number in alternative bank account number also.
Take a look at this thread.
MT940 :No entry with bank key  and acct

Similar Messages

  • Electronic Bank statement error

    Hi gurus,
    I have configured electronic bank statement settings for multicash format when ever i execute the file in ff.5 it is showing the error message and accounting entries will not get generated please help me on this
    Error message.
    Account 560036003      45605043982                   INR: Statement
    200800466 is not in the bank data storage
         Message no. FB770
    Diagnosis
         The previous account statment has not been imported.
    System response
         The system permits the import regardless.
    Procedure
         You can deactivate the message for the formats Multicash and MT940:
    Effects on Customizing
         You can define when this system message is to be issued in accordance with your requirements.
    You do this in Customizing as follows: Controlling -> Controlling:
    General -> Change Message Control.
    The application area and message number can be taken from the technical
    documentation.
    Its very urgent please help me
    Regards,
    Yashwanth

    Thanks for reply
    Again iam getting one more error
    Account statement was not updated
         Message no. FB773
    While importing electronic bank statement, the system determ
    that not all external transactions (business transaction cod
    text keys, or posting texts) were in
    table T028G.
    Enter the transactions in table T028G.
    Afterwards, start the processing again.
    Following entries missing in table T028G:
    These two error messages I am getting please help on this
    Regards,
    Yashwanth

  • Error in uploading MT940 format - Electronic bank statement

    Hi
    I am configuring the electronic bank statement.Here I am able to do so using the Swift MT940 international format. Bank Statement is imported and postings made to bank account.
    One bank will provide the data in MT940 format. I tried using the MT940 file directly, however I get the message - Account statement not updated.
    Please help to reslove the error
    Regards,
    Mahendra

    Hi,
    As Nikhil said,  we have two different files in MT940 (structured and unstructured). Select correct one while processing.
    And also check if you maintain external transactions and posting rules for them in the configuration.
    Thanks.

  • Electronic bank statement processing failed with error

    Hi All,
    While processing the electronic bank statement incoming file, it created an error like
    'Total of Line Items in line item file not the same as in statement file"
    how do I check if the control totals matches..?
    rgds,

    You should give the exact message, with message number.
    If it is FB 777, "DTAUS: Number of line items not equal to control total; see long text", you should see the long text. I think it contains sufficient information:
    Text                                                                               
    DTAUS: Number of line items not equal to control total; see long text
    Diagnosis                                                                               
    data records of record type 'C' were handed over in the file you    
        imported. There must be  data records according to the control total 
        from the fourth field of record type 'E'.                                                                               
    Processing was therefore terminated.                                                                               
    The DTAUS file was not imported into the bank data clipboard. No     
        postings were generated.                                                                               
    Procedure                                                                               
    Inform your credit institution about the error which has occurred and
        let them give you a correct DTAUS file.                                                                               
    No actions are necessary in the SAP System.

  • Bank Statement Import Execution Report error listing

    Hi all,
    Does somebody knows how to see detail error generated via Bank Statement Import Execution Report. The CE_HEADER_INTERFACE_ERRORS and CE_LINE_INTERFACE_ERRORS are populated but i cannot found in metalink description how to solve these errors/or i'm just a bad researcher.../.
    Version: EBS 12.1.3
    OS: Linux
    Thanks in advance,
    Bahchevanov.

    Hi,
    Thanks for reply.
    The tables i'm checking are ce_statement_headers_int, ce_statement_lines_interface. For any errors: CE_HEADER_INTERFACE_ERRORS, CE_LINE_INTERFACE_ERRORS.
    I found that these 3 lines are reconciled. When i unreconciled them and after that reconciled again - they disappeared from the output.
    Do you know if that program contains information about the statements created?
    Because if i execute it, it creates bank statement header with lines correctly but i received no information about what i just created.
    Thanks in advance,
    Bahchevanov.

  • Automatic Import of Electronic Bank Statements (EBS)

    Hi SAP Gurus,
    We want to solve the following issue:
    Daily we receive multiple Electronic Bank Statements by means of banking Communication Software (BCS).
    Those EBS files are stored on our SAP Application Server, filetype = SWIFT MT940 format,
    and the file name contains a date and time stamp.
    File name example: MT940.90910077527_20101124_210421_167660
    Currently the import of these EBS-files is done manually via transaction FF_5 (program: RFEBKA00).
    We want to automate this import process.
    Every time a new EBS-files arrives (in a specific directory) on the application sever
    a signal (including the filename) should be send to SAP, so SAP knows there is a new EBS-file available for import.
    SAP now runs program RFEBKA00, with the provide filename, in the background.  
    Any ideas how to do this?
    Some tech. info:
    Windows Server 2003 R2 SP2 64-bit
    Oracle 10.2.0.4
    SAP R/3 Enterprise 47x200  
    Thanks,
    Roger Vanaubel

    Hi
    I think there are several ways to do it. In our case, we have a program which concatenates all received files into a single file and which launches RFEBKA00. It runs at fixed time, outside the working hours of accounting clerks. It is possible to trigger the program at file receipt, but there are problems if somebody is working in FEBA at the same time RFEBKA00 is working on the same bank account: then RFEBKA00 stops without doing all postings.
    If you trigger RFEBKA00 at file receipt, you may have several jobs running in parallel, and if 2 bank statements received in separate files are for the same account, you will have the same problem.

  • Error in Electronic bank statement

    Hi Guys,
    am trying to do Electronic bank statement, statement is generating but automatic clearing with GL (Main Bank and Bank clearing account) is not happening.
    T.code: FEBAN
    error shown under this transaction... i did not get any error log...how do i rectify this error...
    but under this t.code, i can able to post the line item by manual entry but its not happening automatically
    could anybody tell me how to rectify this error
    Thanks in advance
    Regards
    Elan

    HI Elan,
    If the documents are not posted through Bank Statement processing then the same document items is shown in the text of  "Elec. Posting Incomplete" . After you double clicking the same then you get the list of documents which shown the status of Entered instead of Posted. that means the documents are not posted into the system.
    For posting those incomplete documents you may reprocess the bank statement through the t.code FEBAN.
    You have to enter the details of the Co.code, House Bank, Acct ID, Stmt No and stmt date etc and then press execute button to get the entered statement to do the reprocess.
    Select one of the red colour openitem , goto the select items in the menubar and then click on post.. If you have multiple items which are in red colour then also you have to post all the line items by selecting each and every item. There is no option option to post all at the same time.
    Hope it will rectifies your problem..
    Thanks

  • Error in Upload of Electronic Bank Statement

    Hi All,
    We are trying to upload an electronic bank statement and while it was running, I was disconnected from the system. When I checked, only a few of the entries from the upload file got uploaded successfully and I can not continue the pending job. I would just like to know if I can reupload the file without duplicating the entries that have been uploaded successfully? If not, what options do I have so that I can upload the remaining entries? Please advice. Thank you!

    Hi,
    You can look at the option of deleting the existing bank statement by using the program RFEBKA96 and uploading the statement once again. You can copy the required parameters for this program from FEBA.
    Regards,
    Kiron Kumar T.

  • Electronic bank statement in Foreign Currency

    Hi,
    We have set up the system so as to create a payment order when automatic payment program is run. Now, we have a scenario, where house bank is in local currency - SEK. This is used to pay the invoices in foreign currencies USD, DKK etc using automatic payment program. The electronic bank statement  we receive from the bank has transactions in different currencies. We convert this  to multicash format using DME engine, mapping the amounts in local currency to the statement and item file.
    When  try to clear the invocies by importing this multicash statement, following error message is generated.
    Message no. F5794 i.e. XXX  is not a payment order for currency XXX. Correction required.
    Any ponters to solve the issue.
    Appreciate the help in this regard!
    Thanks
    /Vartika

    Hi Narasimhulu,
    Thanks for your reply.
    The thing is, payment orders are in a foreign currencies - USD , EUR etc. The clearing account is in local currency SEK. The bank statement has amounts both in order currency as well as local currency for every order. But when we are clearing using multicash, we are trying to pass the amounts in local currencies for each order. This is because,  as far as i understand, it is the currency in multicash statement file that is used for clearing . And there can be only one record in  multicash statement file. So we have to use the local currency for clearing.
    EBS:
    1  Payment order 1 - 1000 USD = 7000 SEK
    2  Payment order 2 -2000 EUR = 18000 SEK
    Multicah Statement File :
    25000 SEK
    Multicash Item File :
    Payment order 1 -   7000 SEK
    Payment order 2 -  18000 SEK
    Or is there any other way of handling it ?
    Many thanks again!
    Regards,
    Vartika

  • Electronic Bank Statement - Reg

    Hi All,
    I have configured the Electronic Bank Statement for multicash format. The entries are flown correctly from clearing Account to Main Account once you import the multicash format. We are working SAP R/3 4.7 In this format in Note to payee 1 column bankers captured the cheque number and in note to payee 11 column they captured deposit slip Number.
    When we post the receipt entry we capture the cheque number in assignment column and deposit slip in the reference 3 column.
    After that entry when we import multicash format and subsequent posting to main account system should check the note payee 1 with (Assignment) and note to payee 11 with reference 3 if both are matching the entry should post from clearing account to main account. If any thing is not matching the entry should not pass and system should show that item in error.
    Then user has to run the manual process I have tried with interpretation algorithm also but system not even checks single item. Systems are not throwing any error item.
    Regards
    Venkat

    I tried with both
    :61:0805160516DD114,00NCHK100025//100025
    :61:0805160516DD114,00NCHK100025    1//100025    1

  • Electronic Bank Statement Determining Incorrect Business Partners

    Have an issue with some electronic bank statements we import into SAP. Several of the line items we get from the bank identify the incorrect business partner when creating the payment advice. We are using intepretation algorirthm 001 to interpret the Note to Payee field in the statment.
    We do have 5 search strings in place which do successfully replace the text in the Note to Payee and replace with the vendor #. These work just fine.
    What is weird to me is that when I repeat the issue in another environment and simulate using FEBSTS, it is finding "document numbers" that are text strings and somehow determining the vendor from that. I cannot figure out what logic it is using to do this and why it thinks that when it sees ABCDEGF in the Note to Payee it should be for vendor 1234555, for example.
    These are files from Citibank and the Note to Payee field is in German if that make any difference. The easy solution is to setup search strings that correspond to the text found in there like we do for the other 5 instances which would solve it but we probably won't catch all instances upfront and this issue will still be present;
    Thanks in advance for any assistance.

    Anyone?

  • Bank Statement Reconciliation Errors

    Hi Experts,
    I am working on Bank Statement Reconciliation Interface.I ran 'Bank Statement Import' Program to move data from interface tables to base tables. I am getting following errors.
    Errors:
    .Payment control total in the statement header is not matching the total payment amount on the statement lines
    . Receipt control total in the statement header is not matching the total receipt amount on the statement lines
    .Number of lines in the statement is not matching the line control total in the statement header.
    I have data in control total columns in header interface table.
    Could anyone help how to get rid of these errors.
    Thanks in advance for your help.

    Hi,
    What is the application release?
    Please see if these docs help.
    Cexinerr AutoReconciliation Execution Report Has Incorrect Statement Exceptions When Sweep Lines [ID 759165.1]
    CEXINERR Errors With Invalid Control Totals When Importing A Statement [ID 177719.1]
    Cash Management Overview [ID 96630.1]
    Thanks,
    Hussein

  • Bank Statement Import Execution Report output wrong?

    Hi all,
    In EBS R 12.1.3. for the concurrent request Bank Statement Import Execution Report i have always as output :
    Miscellaneous Receipts Created
       ---------------------Transaction-------------------
    Line      Numbe       Type                 Date        Curr           Amount
    2         25-МАР-2012 Misc Receipt         25-MAR-12   BGN          9,000.00
    4         25-МАР-2012 Misc Payment         25-MAR-12   BGN              1.00
    5         25-МАР-2012 Misc Receipt         25-MAR-12   BGN             10.00I checked the interface tables - they are empty...
    Even the output is strange... it created miscellaneous receipts which i'm not sure is possible via this program.
    Any ideas? Do i have to purge other tables?
    The interface tables for errors are also empty.
    Thanks in advance,
    Bahchevanov.

    Hi,
    Thanks for reply.
    The tables i'm checking are ce_statement_headers_int, ce_statement_lines_interface. For any errors: CE_HEADER_INTERFACE_ERRORS, CE_LINE_INTERFACE_ERRORS.
    I found that these 3 lines are reconciled. When i unreconciled them and after that reconciled again - they disappeared from the output.
    Do you know if that program contains information about the statements created?
    Because if i execute it, it creates bank statement header with lines correctly but i received no information about what i just created.
    Thanks in advance,
    Bahchevanov.

  • Electronic Bank Statement (EBS)

    Hi All,
    My Client is implemented Electronic Bank Statement using BAI format.
    GL Accounts set up is wrong (all bank accounts should be clearing type accounts (Open Item managed, except Operating Account (Main bank account))),but these accounts are not set up as open item management.
    How can I handle this issue and is it possible to create new accounts or any other alternative solution? Any help is appreciated.
    I will assign points.
    Thanks,
    Rau

    HI
    Before executing the programe RFSEPA02 ask your ABAP person to convert the programe to Zprograme as below so that this problem will solve you
    *ZFI_OPEN_ITEM_MANAGE-TO APPLY OPEN ITEM MANAGE TICK
    *& Report  ZFI_OPEN_ITEM_MANAGE
    REPORT  ZFI_OPEN_ITEM_MANAGE MESSAGE-ID FH LINE-SIZE 80.
    THIS IS NOT A STANDARD PROGRAM.
    IT IS ONLY INCLUDED FOR CONVENIENCE IN CASE IT WILL BE NEEDED.
    ONLY USE IT AFTER CONSULTING WITH SAP. S6DK909852
    *REPORT RFSEPA02 MESSAGE-ID FH LINE-SIZE 80.
    INCLUDE FSACHCDF.
    INCLUDE FSACHCDV.
    TABLES: BSIS,
            BSAS,
            BSEG,
            BKPF,
            GLT0,
            T001.
    DATA: BEGIN OF T_BSXX OCCURS 100.
            INCLUDE STRUCTURE BSIS.
    DATA: END OF T_BSXX.
    DATA: BEGIN OF T_LISTE OCCURS 300,
            GJAHR    LIKE BKPF-GJAHR,
            BELNR    LIKE BKPF-BELNR,
            SORT     TYPE I,
            TABLE(4) TYPE C,
            TYPE     TYPE C,
            OK       TYPE C,
          END OF T_LISTE.
    DATA: D_MAX         LIKE SY-TFILL VALUE '100',
          D_BELNR       LIKE BSEG-BELNR,
        D_TFILL       LIKE SY-TFILL.        "<<<< DELETE - NOTE 70203
          D_TFILL       LIKE SY-TFILL,     "<<<< INSERT - NOTE 70203
          D_STORNO      TYPE C.            "<<<< INSERT - NOTE 70203
    DATA: BALANCE_ITEMS   LIKE GLT0-HSL01,
          BALANCE_ACCOUNT LIKE GLT0-HSL01.
    *>>>> BEGIN OF INSERTION - NOTE 66156 <<<<
    DATA: XGLEDTAB LIKE GLEDTAB OCCURS 1 WITH HEADER LINE.
    DATA: BEGIN OF BK_METHODE,
            HWAE1 LIKE T001-WAERS,
            HWAE2 LIKE T001-WAERS,
            HWAE3 LIKE T001-WAERS,
            CURT1 LIKE X001-CURT2,
            CURT2 LIKE X001-CURT2,
            CURT3 LIKE X001-CURT2,
          END OF BK_METHODE.
    DATA: BEGIN OF T_BALANCE_ITEMS_HW OCCURS 1,
            WAERS1 LIKE T001-WAERS,
            VALUE1 LIKE GLT0-HSLVT,
            WAERS2 LIKE T001-WAERS,
            VALUE2 LIKE GLT0-HSLVT,
            WAERS3 LIKE T001-WAERS,
            VALUE3 LIKE GLT0-HSLVT,
          END OF T_BALANCE_ITEMS_HW.
    DATA: BEGIN OF T_BALANCE_ACCOUNT_HW OCCURS 1,
            WAERS1 LIKE T001-WAERS,
            VALUE1 LIKE GLT0-HSLVT,
            WAERS2 LIKE T001-WAERS,
            VALUE2 LIKE GLT0-HSLVT,
            WAERS3 LIKE T001-WAERS,
            VALUE3 LIKE GLT0-HSLVT,
          END OF T_BALANCE_ACCOUNT_HW.
    DATA: BEGIN OF T_BALANCE_ITEMS_TW OCCURS 1,
            WAERS LIKE GLT0-RTCUR,
            VALUE LIKE GLT0-TSLVT,
          END OF T_BALANCE_ITEMS_TW.
    DATA: BEGIN OF T_BALANCE_ACCOUNT_TW OCCURS 10,
            WAERS LIKE GLT0-RTCUR,
            VALUE LIKE GLT0-TSLVT,
          END OF T_BALANCE_ACCOUNT_TW.
    *>>>> END OF INSERTION - NOTE 66156 <<<<
    DATA: NUM_BSEG_SELECT LIKE SY-TFILL,
          NUM_BSEG_UPDATE LIKE SY-TFILL,
          NUM_BSIS_INSERT LIKE SY-TFILL,
          NUM_BSIS_SELECT LIKE SY-TFILL,
          NUM_BSIS_UPDATE LIKE SY-TFILL,
          NUM_BSAS_INSERT LIKE SY-TFILL,
          NUM_BSAS_SELECT LIKE SY-TFILL,
          NUM_BSAS_UPDATE LIKE SY-TFILL.
    CONSTANTS: CHAR_I     TYPE C VALUE 'I',
               CHAR_S     TYPE C VALUE 'S',
               CHAR_U     TYPE C VALUE 'U'.
    *PARAMETER:     P_BUKRS  LIKE BSEG-BUKRS OBLIGATORY.
                                           "<<<< DELETE NOTE - 62751
    *PARAMETER:     P_SAKNR  LIKE BSEG-HKONT OBLIGATORY.
                                           "<<<< DELETE NOTE - 62751
    *>>>> BEGIN OF INSERTION - NOTE 62751 <<<<
    PARAMETERS:     P_BUKRS  LIKE BKPF-BUKRS OBLIGATORY.
    PARAMETERS:     P_SAKNR  LIKE SKA1-SAKNR OBLIGATORY
                                      MATCHCODE OBJECT SAKO.
    *>>>> END OF INSERTION - NOTE 62751 <<<<
    SELECT-OPTIONS P_BELNR  FOR  BSEG-BELNR.
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF BLOCK B01 WITH FRAME TITLE TEXT-B01.
    PARAMETERS:    P_LISTE  AS CHECKBOX DEFAULT 'X'.    " list protocol on
    SELECTION-SCREEN END OF BLOCK B01.
    INITIALIZATION.
      CALL FUNCTION 'POPUP_DISPLAY_TEXT'
           EXPORTING
                POPUP_TITLE    = ' '
                TEXT_OBJECT    = 'RFSEPA02'
           EXCEPTIONS
                TEXT_NOT_FOUND = 1
                OTHERS         = 2.
    *{   DELETE         DMUK903910                                        1
    LEAVE PROGRAM.
    *}   DELETE
    AT SELECTION-SCREEN ON P_SAKNR.
      PERFORM CHECK_ACCOUNT.               " locked for posting?
      PERFORM CHECK_ACCOUNT2.              "<<<< INSERT - NOTE 66156
    PERFORM ENQUEUE_ACCOUNT.             "<<<< DELETE - NOTE 65191
    START-OF-SELECTION.
      PERFORM ENQUEUE_ACCOUNT.             "<<<< INSERT - NOTE 65191
      PERFORM CHECK_AUTHORITY_SKA1_BUK.
      PERFORM CHECK_AUTHORITY_SKA1_BES.
    PERFORM CHECK_ACCOUNT_BALANCE.       "<<<< DELETE - NOTE 66156
      PERFORM CHECK_ACCOUNT_BALANCE_2.     "<<<< INSERT - NOTE 66156
    *--- BSIS -
      CLEAR D_BELNR.
      CLEAR T_LISTE. REFRESH T_LISTE.
      CLEAR T_BSXX.  REFRESH T_BSXX.
      DO.
        PERFORM SELECT_ITEMS USING 'BSIS' D_TFILL.
        IF D_TFILL EQ 0.
          EXIT.
        ENDIF.
        LOOP AT T_BSXX.
          PERFORM BKPF_UPDATE.             "<<<< INSERT - NOTE 70203
          PERFORM BSEG_UPDATE.
          PERFORM BSXX_UPDATE USING 'BSIS'.
        ENDLOOP.
        PERFORM WRITE_LIST_PROTOCOL.
        COMMIT WORK.
      ENDDO.
    *--- BSAS -
      CLEAR D_BELNR.
      CLEAR T_LISTE. REFRESH T_LISTE.
      CLEAR T_BSXX.  REFRESH T_BSXX.
      DO.
        PERFORM SELECT_ITEMS USING 'BSAS' SY-TFILL.
        IF SY-TFILL EQ 0.
          EXIT.
        ENDIF.
        LOOP AT T_BSXX.
          PERFORM BSEG_UPDATE.
          PERFORM BSXX_UPDATE USING 'BSAS'.
        ENDLOOP.
        PERFORM WRITE_LIST_PROTOCOL.
        COMMIT WORK.
      ENDDO.
      PERFORM WRITE_PROTOCOL.
    END-OF-SELECTION.
      PERFORM CHANGE_ACCOUNT.
      PERFORM DEQUEUE_ACCOUNT.
    TOP-OF-PAGE.
      ULINE.
      WRITE:/   SY-VLINE,
             2  TEXT-001,
             25 P_SAKNR INTENSIFIED OFF,
             80 SY-VLINE.
      WRITE:/   SY-VLINE,
             2  TEXT-002,
             25 P_BUKRS INTENSIFIED OFF,
             80 SY-VLINE.
      ULINE.
      IF P_LISTE = 'X'.
        WRITE:/          SY-VLINE,
                  2(10)  TEXT-S01 COLOR COL_HEADING,
                  12     SY-VLINE,
                  13(4)  TEXT-S02 COLOR COL_HEADING,
                  17     SY-VLINE,
                  18(62) TEXT-S03 COLOR COL_HEADING,
                  80     SY-VLINE.
      ENDIF.
    *&      Form  SELECT_ITEMS
    FORM SELECT_ITEMS USING TABLE TYPE C
                            FILL  LIKE SY-TFILL.
      SELECT * FROM (TABLE) INTO TABLE T_BSXX
                            UP TO D_MAX ROWS
                           WHERE BUKRS EQ P_BUKRS
                             AND HKONT EQ P_SAKNR
                             AND BELNR IN P_BELNR
                             AND XOPVW EQ SPACE.
      FILL = SY-DBCNT.
    *--- PROTOCOL -
      LOOP AT T_BSXX.
        PERFORM SAVE_PROTOCOL USING T_BSXX-BELNR T_BSXX-GJAHR
                                    1 TABLE CHAR_S 1.
      ENDLOOP.
      SORT T_BSXX BY MANDT BUKRS BELNR GJAHR.
    ENDFORM.                               " SELECT_ITEMS
    *&      Form  BSEG_UPDATE
    FORM BSEG_UPDATE.
      SELECT SINGLE * FROM BSEG WHERE BUKRS = T_BSXX-BUKRS
                                AND   GJAHR = T_BSXX-GJAHR
                                AND   BELNR = T_BSXX-BELNR
                                AND   BUZEI = T_BSXX-BUZEI.
      IF BSEG-KTOSL = 'MVA' OR BSEG-KTOSL = 'VVA'.
        MESSAGE A145(FH) WITH BSEG-HKONT.
      ENDIF.
      IF BSEG-KOART = 'M'.
        MESSAGE A144(FH) WITH P_SAKNR BSEG-BSCHL.
      ENDIF.
      UPDATE BSEG SET XOPVW = 'X'
                WHERE BUKRS EQ T_BSXX-BUKRS
                  AND GJAHR EQ T_BSXX-GJAHR
                  AND BELNR EQ T_BSXX-BELNR
                  AND BUZEI EQ T_BSXX-BUZEI.
    *--- PROTOCOL -
      PERFORM SAVE_PROTOCOL USING T_BSXX-BELNR T_BSXX-GJAHR
                                  2 'BSEG' CHAR_U SY-DBCNT.
    ENDFORM.                               " BSEG_UPDATE
    *&      Form  BSIS_UPDATE
    FORM BSXX_UPDATE USING TABLE TYPE C.
      T_BSXX-XOPVW = 'X'.
      IF D_STORNO = 'X' AND TABLE = 'BSIS'."<<<< INSERT - NOTE 70203
        T_BSXX-XSTOV = SPACE.              "<<<< INSERT - NOTE 70203
      ENDIF.                               "<<<< INSERT - NOTE 70203
      UPDATE (TABLE) FROM T_BSXX.
    *--- PROTOCOL -
      PERFORM SAVE_PROTOCOL USING T_BSXX-BELNR T_BSXX-GJAHR
                                  1 TABLE CHAR_U SY-DBCNT.
    ENDFORM.                               " BSIS_UPDATE
    *&      Form  CHECK_ACCOUNT_BALANCE
    FORM CHECK_ACCOUNT_BALANCE.
      DATA:   D_GJAHR LIKE BSEG-GJAHR.
    Account balance
      PERFORM READ_T001 USING P_BUKRS.
      PERFORM READ_CURRENT_YEAR CHANGING D_GJAHR.
      PERFORM READ_GLDB USING P_BUKRS P_SAKNR D_GJAHR.
      PERFORM READ_BSIS USING P_BUKRS P_SAKNR.
      IF BALANCE_ITEMS NE BALANCE_ACCOUNT.
        MESSAGE E099.
      Summe der Einzelposten stimmt nicht mit Kontensaldo überein. ->
      ENDIF.
    ENDFORM.                               " CHECK_ACCOUNT_BALANCE
    *&      Form  READ_T001
    FORM READ_T001 USING BUKRS LIKE T001-BUKRS.
      SELECT SINGLE * FROM T001 WHERE BUKRS = BUKRS.
      IF SY-SUBRC <> 0.
        MESSAGE E001 WITH BUKRS.
      ENDIF.
    ENDFORM.                               " READ_T001
    *&      Form  READ_CURRENT_YEAR
    FORM READ_CURRENT_YEAR CHANGING GJAHR LIKE T009B-BDATJ.
      CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
           EXPORTING
                I_DATE         = SY-DATUM
                I_PERIV        = T001-PERIV
           IMPORTING
                E_GJAHR        = GJAHR
           EXCEPTIONS
                T009_NOTFOUND  = 1
                INPUT_FALSE    = 1
                T009B_NOTFOUND = 1.
    ENDFORM.                               " READ_CURRENT_YEAR
    *&      Form  READ_GLDB
    FORM READ_GLDB USING XBUKRS LIKE GLT0-BUKRS
                         XSAKNR LIKE GLT0-RACCT
                         XGJAHR LIKE GLT0-RYEAR.
      SELECT * FROM GLT0
               WHERE RLDNR = '00'
               AND   RRCTY = '0'
               AND   RVERS = '001'
               AND   BUKRS = XBUKRS
               AND   RYEAR = XGJAHR
               AND   RACCT = XSAKNR.
        PERFORM CALCULATE_BALANCE.
      ENDSELECT.
    ENDFORM.                               " READ_GLDB
          FORM CALCULATE_BALANCE                                        *
    FORM CALCULATE_BALANCE.
      DATA: BALANCE  LIKE GLT0-TSL01.
      BALANCE_ACCOUNT = BALANCE_ACCOUNT + GLT0-HSLVT.
      DO GLT0-RPMAX TIMES
         VARYING BALANCE FROM GLT0-HSL01 NEXT GLT0-HSL02.
        BALANCE_ACCOUNT = BALANCE_ACCOUNT + BALANCE.
      ENDDO.
    ENDFORM.                               " CALCULATE_BALANCE
    *&      Form  READ_BSIS
    FORM READ_BSIS USING BUKRS LIKE BSIS-BUKRS
                         SAKNR LIKE BSIS-HKONT.
      SELECT * FROM  BSIS
             WHERE  BUKRS = BUKRS
             AND    HKONT = SAKNR.
        IF BSIS-SHKZG = 'S'.
          BALANCE_ITEMS = BALANCE_ITEMS  + BSIS-DMBTR.
        ELSE.
          BALANCE_ITEMS = BALANCE_ITEMS  - BSIS-DMBTR.
        ENDIF.
      ENDSELECT.
    ENDFORM.                               " READ_BSIS
    *&      Form  CHANGE_ACCOUNT
    FORM CHANGE_ACCOUNT.
      SKB1       = *SKB1.
      SKB1-XOPVW = 'X'.
      OBJECTID    = T001-KTOPL.
      OBJECTID+4  = SKB1-SAKNR.
      OBJECTID+14 = SKB1-BUKRS.
      UPD_SKB1    = 'U'.
      UTIME       = SY-UZEIT.
      UDATE       = SY-DATUM.
      USERNAME    = SY-UNAME.
      PERFORM CD_CALL_SACH.
      CALL FUNCTION 'GL_ACCOUNT_IN_COMPANY_UPDATE'
           EXPORTING
                I_SKB1 = SKB1.
      COMMIT WORK.
    ENDFORM.                               " CHANGE_ACCOUNT
    *&      Form  ENQUEUE_ACCOUNT
    FORM ENQUEUE_ACCOUNT.
      CALL FUNCTION 'ENQUEUE_EFSKB1'
           EXPORTING
                BUKRS          = P_BUKRS
                SAKNR          = P_SAKNR
           EXCEPTIONS
                FOREIGN_LOCK   = 1
                SYSTEM_FAILURE = 2.
      CASE SY-SUBRC.
        WHEN 1.
          MESSAGE E042 WITH P_SAKNR P_BUKRS.
        WHEN 2.
          MESSAGE E038 WITH P_SAKNR P_BUKRS.
      ENDCASE.
    ENDFORM.                               " ENQUEUE_ACCOUNT
    *&      Form  DEQUEUE_ACCOUNT
    FORM DEQUEUE_ACCOUNT.
      CALL FUNCTION 'DEQUEUE_EFSKB1'
           EXPORTING
                BUKRS          = P_BUKRS
                SAKNR          = P_SAKNR
           EXCEPTIONS
                SYSTEM_FAILURE = 1.
    ENDFORM.                               " DEQUEUE_ACCOUNT
          FORM WRITE_LIST_PROTOCOL                                      *
          writes list protocol                                          *
    FORM WRITE_LIST_PROTOCOL.
      DATA: TEXT(62)   TYPE C,
            SAVE_BELNR LIKE BKPF-BELNR.
      DESCRIBE TABLE T_LISTE LINES SY-TFILL.
      CHECK P_LISTE = 'X'.
      CHECK SY-TFILL > 0.
      SORT T_LISTE BY GJAHR BELNR SORT TYPE.
      LOOP AT T_LISTE.
        CHECK T_LISTE-OK = 1.
        CASE T_LISTE-TABLE.
          WHEN 'BSEG'.
            CASE T_LISTE-TYPE.
              WHEN CHAR_S.
                TEXT = TEXT-BE1.
              WHEN CHAR_U.
                TEXT = TEXT-BE2.
            ENDCASE.
          WHEN 'BSIS'.
            CASE T_LISTE-TYPE.
              WHEN CHAR_S.
                TEXT = TEXT-XX1.
                REPLACE '&TAB' WITH T_LISTE-TABLE INTO TEXT.
              WHEN CHAR_U.
                TEXT = TEXT-XX2.
                REPLACE '&TAB' WITH T_LISTE-TABLE INTO TEXT.
              WHEN CHAR_I.
                TEXT = TEXT-XX3.
                REPLACE '&TAB' WITH T_LISTE-TABLE INTO TEXT.
            ENDCASE.
          WHEN 'BSAS'.
            CASE T_LISTE-TYPE.
              WHEN CHAR_S.
                TEXT = TEXT-XX1.
                REPLACE '&TAB' WITH T_LISTE-TABLE INTO TEXT.
              WHEN CHAR_U.
                TEXT = TEXT-XX2.
                REPLACE '&TAB' WITH T_LISTE-TABLE INTO TEXT.
              WHEN CHAR_I.
                TEXT = TEXT-XX3.
                REPLACE '&TAB' WITH T_LISTE-TABLE INTO TEXT.
            ENDCASE.
        ENDCASE.
        AT NEW BELNR.
          ULINE.
          WRITE:/       SY-VLINE,
                  2     T_LISTE-BELNR COLOR COL_KEY,
                  12    SY-VLINE,
                  13    T_LISTE-GJAHR COLOR COL_KEY,
                  17    SY-VLINE.
        ENDAT.
        IF SAVE_BELNR <> T_LISTE-BELNR.
          WRITE: 18(62) TEXT COLOR COL_NORMAL INTENSIFIED OFF,
                    80  SY-VLINE.
          SAVE_BELNR = T_LISTE-BELNR.
        ELSE.
          WRITE:/       SY-VLINE,
                 12     SY-VLINE,
                 17     SY-VLINE,
                 18(62) TEXT COLOR COL_NORMAL INTENSIFIED OFF,
                 80     SY-VLINE.
        ENDIF.
      ENDLOOP.
      ULINE.
    ENDFORM.                               " WRITE_LIST_PROTOCOL
          FORM WRITE_PROTOCOL                                           *
          writes normal protocol                                        *
    FORM WRITE_PROTOCOL.
      DATA: TEXT(62)   TYPE C.
    *- selected items-----
      IF NOT ( NUM_BSIS_SELECT = 0  ).
        TEXT = TEXT-NX1.
        REPLACE '&TAB' WITH 'BSIS' INTO TEXT.
        WRITE:/        SY-VLINE,
                2(58)  TEXT COLOR COL_KEY INTENSIFIED ON,
                60(1)  SY-VLINE,
                61(19) NUM_BSIS_SELECT COLOR COL_NORMAL INTENSIFIED OFF,
                80     SY-VLINE.
      ENDIF.
      IF NOT ( NUM_BSAS_SELECT = 0 ).
        TEXT = TEXT-NX1.
        REPLACE '&TAB' WITH 'BSAS' INTO TEXT.
        WRITE:/        SY-VLINE,
                2(58)  TEXT COLOR COL_KEY INTENSIFIED ON,
                60(1)  SY-VLINE,
                61(19) NUM_BSAS_SELECT COLOR COL_NORMAL INTENSIFIED OFF,
                80     SY-VLINE.
      ENDIF.
      IF NOT ( NUM_BSEG_SELECT = 0 ).
        WRITE:/       SY-VLINE,
                2(58) TEXT-NB1 COLOR COL_KEY INTENSIFIED ON,
                60(1)  SY-VLINE,
                61(19) NUM_BSEG_SELECT COLOR COL_NORMAL INTENSIFIED OFF,
                80     SY-VLINE.
      ENDIF.
    *- changed items-----
      IF NUM_BSIS_UPDATE > 0.
        TEXT = TEXT-NX2.
        REPLACE '&TAB' WITH 'BSIS' INTO TEXT.
        WRITE:/        SY-VLINE,
                 2(58) TEXT COLOR COL_KEY INTENSIFIED ON,
                60(1)  SY-VLINE,
                61(19) NUM_BSIS_UPDATE COLOR COL_NORMAL INTENSIFIED OFF,
                80     SY-VLINE.
      ENDIF.
      IF NUM_BSAS_UPDATE > 0.
        TEXT = TEXT-NX2.
        REPLACE '&TAB' WITH 'BSAS' INTO TEXT.
        WRITE:/        SY-VLINE,
                 2(58) TEXT COLOR COL_KEY INTENSIFIED ON,
                 60(1)  SY-VLINE,
                 61(19) NUM_BSAS_UPDATE COLOR COL_NORMAL INTENSIFIED OFF,
                 80     SY-VLINE.
      ENDIF.
      IF NUM_BSEG_UPDATE > 0.
        WRITE:/        SY-VLINE,
                 2(58) TEXT-NB2 COLOR COL_KEY INTENSIFIED ON,
                60(1)  SY-VLINE,
                61(19) NUM_BSEG_UPDATE COLOR COL_NORMAL INTENSIFIED OFF,
                80     SY-VLINE.
      ENDIF.
      ULINE.
      ADD NUM_BSIS_SELECT TO NUM_BSAS_SELECT.
      IF NUM_BSAS_SELECT = 0.
        ULINE.
        WRITE:/       SY-VLINE,
                2(78) TEXT-NSB COLOR COL_NEGATIVE,
                80    SY-VLINE.
        ULINE.
      ENDIF.
    ENDFORM.
    *>>>> BEGIN OF INSERTION - NOTE 66156
    *&      Form  CHECK_ACCOUNT_BALANCE_2
    FORM CHECK_ACCOUNT_BALANCE_2.
      DATA:   D_GJAHR LIKE BSEG-GJAHR.
    Account balance
      PERFORM READ_T001 USING P_BUKRS.
      PERFORM READ_CURRENT_YEAR CHANGING D_GJAHR.
      PERFORM READ_CURRENCY_T001A USING P_BUKRS.
    Transaktionswährung & Hauswährung
      PERFORM READ_GLDB_2 USING P_BUKRS P_SAKNR D_GJAHR.
      PERFORM READ_BSIS_2 USING P_BUKRS P_SAKNR.
    BEGIN OF INSERTION
      LOOP AT T_BALANCE_ITEMS_TW WHERE VALUE = 0.
        DELETE T_BALANCE_ITEMS_TW.
      ENDLOOP.
      LOOP AT T_BALANCE_ACCOUNT_TW WHERE VALUE = 0.
        DELETE T_BALANCE_ACCOUNT_TW.
      ENDLOOP.
      LOOP AT T_BALANCE_ITEMS_HW WHERE VALUE1 = 0
                                 AND   VALUE2 = 0
                                 AND   VALUE3 = 0.
        DELETE T_BALANCE_ITEMS_HW.
      ENDLOOP.
      LOOP AT T_BALANCE_ACCOUNT_HW WHERE VALUE1 = 0
                                   AND   VALUE2 = 0
                                   AND   VALUE3 = 0.
        DELETE T_BALANCE_ACCOUNT_HW.
      ENDLOOP.
    END OF INSERTION
      IF T_BALANCE_ITEMS_HW[] <> T_BALANCE_ACCOUNT_HW[] OR
         T_BALANCE_ITEMS_TW[] <> T_BALANCE_ACCOUNT_TW[].
        PERFORM DEQUEUE_ACCOUNT.
        MESSAGE E099.
      Summe der Einzelposten stimmt nicht mit Kontensaldo überein. ->
      ENDIF.
    ENDFORM.                               " CHECK_ACCOUNT_BALANCE_2
    *&      Form  READ_GLDB_2
    FORM READ_GLDB_2 USING XBUKRS LIKE GLT0-BUKRS
                           XSAKNR LIKE GLT0-RACCT
                           XGJAHR LIKE GLT0-RYEAR.
      DATA: TYPE(3) TYPE C,
            CURT    LIKE BK_METHODE-CURT1.
      DATA: RESULT LIKE T_BALANCE_ACCOUNT_TW OCCURS 1 WITH HEADER LINE.
      CLEAR T_BALANCE_ACCOUNT_TW.
      CLEAR T_BALANCE_ACCOUNT_HW.
    Transaktionswährung
      CLEAR RESULT. REFRESH RESULT.
      CLEAR XGLEDTAB. REFRESH XGLEDTAB.
      TYPE = 'TW'.
      XGLEDTAB-RLDNR      = '00'.
      APPEND XGLEDTAB.
      PERFORM READ_LEDGER TABLES RESULT XGLEDTAB
                                  USING XBUKRS XSAKNR XGJAHR TYPE.
      LOOP AT RESULT.
        T_BALANCE_ACCOUNT_TW-WAERS = RESULT-WAERS.
        T_BALANCE_ACCOUNT_TW-VALUE = RESULT-VALUE.
        APPEND T_BALANCE_ACCOUNT_TW.
      ENDLOOP.
    1. Hauswährung
      CLEAR RESULT. REFRESH RESULT.
      CLEAR XGLEDTAB. REFRESH XGLEDTAB.
      TYPE = 'HW1'.
      CURT = BK_METHODE-CURT1.
      XGLEDTAB-RLDNR      = '00'.
      APPEND XGLEDTAB.
      PERFORM READ_LEDGER TABLES RESULT XGLEDTAB
                                  USING XBUKRS XSAKNR XGJAHR TYPE.
      READ TABLE RESULT INDEX 1.
      T_BALANCE_ACCOUNT_HW-WAERS1 = RESULT-WAERS.
      T_BALANCE_ACCOUNT_HW-VALUE1 = RESULT-VALUE.
    *2. Hauswährung
      IF BK_METHODE-CURT2 <> SPACE.
        CLEAR RESULT. REFRESH RESULT.
        CLEAR XGLEDTAB. REFRESH XGLEDTAB.
        TYPE = 'HW2'.
        CURT = BK_METHODE-CURT2.
        IF CURT = '30'.
          XGLEDTAB-RLDNR      = '00'.
          XGLEDTAB-CURRNUMBER = '3'.
        ELSE.
          CALL FUNCTION 'G_GIVE_LEDGERS_FOR_GLT0'
               EXPORTING
                    BUKRS  = XBUKRS
                    CURTP  = CURT
               TABLES
                    LEDTAB = XGLEDTAB.
          DESCRIBE TABLE XGLEDTAB LINES SY-TFILL.
          IF SY-TFILL GT 1. SORT XGLEDTAB. ENDIF.
          READ TABLE XGLEDTAB INDEX 1.
        ENDIF.
        PERFORM READ_LEDGER TABLES RESULT XGLEDTAB
                                    USING XBUKRS XSAKNR XGJAHR TYPE.
        READ TABLE RESULT INDEX 1.
        T_BALANCE_ACCOUNT_HW-WAERS2 = RESULT-WAERS.
        T_BALANCE_ACCOUNT_HW-VALUE2 = RESULT-VALUE.
      ENDIF.
      IF BK_METHODE-CURT3 <> SPACE.
    *3. Hauswährung
        CLEAR RESULT. REFRESH RESULT.
        CLEAR XGLEDTAB. REFRESH XGLEDTAB.
        TYPE = 'HW3'.
        CURT = BK_METHODE-CURT3.
        IF CURT = '30'.
          XGLEDTAB-RLDNR      = '00'.
          XGLEDTAB-CURRNUMBER = '3'.
        ELSE.
          CALL FUNCTION 'G_GIVE_LEDGERS_FOR_GLT0'
               EXPORTING
                    BUKRS  = XBUKRS
                    CURTP  = CURT
               TABLES
                    LEDTAB = XGLEDTAB.
          DESCRIBE TABLE XGLEDTAB LINES SY-TFILL.
          IF SY-TFILL GT 1. SORT XGLEDTAB. ENDIF.
          READ TABLE XGLEDTAB INDEX 1.
        ENDIF.
        PERFORM READ_LEDGER TABLES RESULT XGLEDTAB
                             USING XBUKRS XSAKNR XGJAHR TYPE.
        READ TABLE RESULT INDEX 1.
        T_BALANCE_ACCOUNT_HW-WAERS3 = RESULT-WAERS.
        T_BALANCE_ACCOUNT_HW-VALUE3 = RESULT-VALUE.
      ENDIF.
      APPEND T_BALANCE_ACCOUNT_HW.
      SORT T_BALANCE_ACCOUNT_TW.
    ENDFORM.                               " READ_GLDB_2
    *&      Form  READ_BSIS_2
    FORM READ_BSIS_2 USING BUKRS LIKE BSIS-BUKRS
                           SAKNR LIKE BSIS-HKONT.
      CLEAR T_BALANCE_ITEMS_HW. REFRESH T_BALANCE_ITEMS_HW.
      CLEAR T_BALANCE_ITEMS_TW. REFRESH T_BALANCE_ITEMS_TW.
      SELECT * FROM  BSIS
             WHERE  BUKRS = BUKRS
             AND    HKONT = SAKNR.
        IF ( BSIS-PSWSL IS INITIAL OR BSIS-PSWBT IS INITIAL ) AND
             BSIS-XARCH NE 'X'.
          SELECT SINGLE * FROM BSEG WHERE BUKRS = BSIS-BUKRS
                                    AND   BELNR = BSIS-BELNR
                                    AND   GJAHR = BSIS-GJAHR
                                    AND   BUZEI = BSIS-BUZEI.
          IF SY-SUBRC <> 0.
            MESSAGE A500(FE) WITH 'BSEG nicht gefunden'.        "#EC NOTEXT
          ENDIF.
          BSIS-PSWSL = BSEG-PSWSL.
          BSIS-PSWBT = BSEG-PSWBT.
        ENDIF.
        IF BSIS-SHKZG = 'S'.
          T_BALANCE_ITEMS_HW-WAERS1 = BK_METHODE-HWAE1.
          T_BALANCE_ITEMS_HW-WAERS2 = BK_METHODE-HWAE2.
          T_BALANCE_ITEMS_HW-WAERS3 = BK_METHODE-HWAE3.
          T_BALANCE_ITEMS_HW-VALUE1 = BSIS-DMBTR.
          T_BALANCE_ITEMS_HW-VALUE2 = BSIS-DMBE2.
          T_BALANCE_ITEMS_HW-VALUE3 = BSIS-DMBE3.
          T_BALANCE_ITEMS_TW-WAERS  = BSIS-PSWSL.
          T_BALANCE_ITEMS_TW-VALUE  = BSIS-PSWBT.
        ELSE.
          T_BALANCE_ITEMS_HW-WAERS1 = BK_METHODE-HWAE1.
          T_BALANCE_ITEMS_HW-WAERS2 = BK_METHODE-HWAE2.
          T_BALANCE_ITEMS_HW-WAERS3 = BK_METHODE-HWAE3.
          T_BALANCE_ITEMS_HW-VALUE1 = - BSIS-DMBTR.
          T_BALANCE_ITEMS_HW-VALUE2 = - BSIS-DMBE2.
          T_BALANCE_ITEMS_HW-VALUE3 = - BSIS-DMBE3.
          T_BALANCE_ITEMS_TW-WAERS  = BSIS-PSWSL.
          T_BALANCE_ITEMS_TW-VALUE  = - BSIS-PSWBT.
        ENDIF.
        COLLECT T_BALANCE_ITEMS_HW.
        COLLECT T_BALANCE_ITEMS_TW.
      ENDSELECT.
      SORT T_BALANCE_ITEMS_TW.
    ENDFORM.                               " READ_BSIS_2
    *&      Form  CHECK_ACCOUNT2
          Check some things for XOPVW
    FORM CHECK_ACCOUNT2.
      TABLES: TBSL, T030.
      DATA: CHECK_BSCHL LIKE BSIS-BSCHL OCCURS 10 WITH HEADER LINE.
    Belege schon archiviert?
      SELECT * FROM BSIS WHERE BUKRS EQ P_BUKRS
                         AND   HKONT EQ P_SAKNR
                         AND   XARCH EQ 'X'.
        MESSAGE E146.
       Es sind schon Belege archiviert worden. Änderung ist nicht möglich
      ENDSELECT.
    Vorgangsschlüssel MVA und VVA sind nicht erlaubt.
      SELECT * FROM T030 WHERE KTOPL = T001-KTOPL
                          AND  ( KTOSL = 'MVA' OR KTOSL = 'VVA' ).
        IF T030-KONTS = P_SAKNR OR T030-KONTH = P_SAKNR.
          MESSAGE E145(FH) WITH P_SAKNR.
       Konto wird in Kontenfindung für Vorgang MVA oder VVA verwendet
        ENDIF.
      ENDSELECT.
    Buchungsschlüsseln dürfen nicht für KOART = M sein
      SELECT BSCHL INTO TABLE CHECK_BSCHL FROM BSIS
                                          WHERE BUKRS EQ P_BUKRS
                                          AND   HKONT EQ P_SAKNR.
      SORT CHECK_BSCHL.
      DELETE ADJACENT DUPLICATES FROM CHECK_BSCHL.
      LOOP AT CHECK_BSCHL.
        SELECT SINGLE KOART INTO TBSL-KOART FROM TBSL
                                            WHERE BSCHL = CHECK_BSCHL.
        IF SY-SUBRC NE 0.
          MESSAGE E143(FH) WITH CHECK_BSCHL.
         Verwendeter Buchungsschlüssel & ist nicht mehr in der Kontenfindu
        ELSEIF TBSL-KOART = 'M'.
          MESSAGE E144(FH) WITH P_SAKNR CHECK_BSCHL.
          Konto & kann nicht geändert werden -> Langtext
        ENDIF.
      ENDLOOP.
    ENDFORM.                               " CHECK_ACCOUNT2
    *>>>> END OF INSERTION - NOTE 66156 <<<<
    INCLUDE FSACHCDC.
    INCLUDE EPA00F00.
    *&      Form  READ_CURRENCY_T001A
    FORM READ_CURRENCY_T001A USING P_BUKRS LIKE T001-BUKRS.
      TABLES: X001.
      CALL FUNCTION 'FI_CURRENCY_INFORMATION'
           EXPORTING
                I_BUKRS                = P_BUKRS
           IMPORTING
                E_X001                 = X001
           EXCEPTIONS
                CURRENCY_2_NOT_DEFINED = 1
                CURRENCY_3_NOT_DEFINED = 2
                OTHERS                 = 6.
      BK_METHODE-HWAE1 = T001-WAERS.
      BK_METHODE-HWAE2 = X001-HWAE2.
      BK_METHODE-HWAE3 = X001-HWAE3.
      BK_METHODE-CURT1 = '10'.
      BK_METHODE-CURT2 = X001-CURT2.
      BK_METHODE-CURT3 = X001-CURT3.
    ENDFORM.                               " READ_CURRENCY_T001A
    *&      Form  READ_LEDGER
    FORM READ_LEDGER TABLES   RESULT      STRUCTURE T_BALANCE_ACCOUNT_TW
                              XGLEDTAB    STRUCTURE GLEDTAB
                     USING    XBUKRS      LIKE      GLT0-BUKRS
                              XSAKNR      LIKE      GLT0-RACCT
                              XGJAHR      LIKE      GLT0-RYEAR
                              TYPE        TYPE      C.
      DATA: BALANCE LIKE GLT0-TSLVT.
      DATA:    I_GJAHR     LIKE GLT0-RYEAR.
      STATICS: I_RECURSIV  TYPE I.
      CHECK I_RECURSIV < 2.
      CLEAR RESULT. REFRESH RESULT.
      READ TABLE XGLEDTAB INDEX 1.
      SELECT * FROM GLT0
               WHERE RLDNR = XGLEDTAB-RLDNR
               AND   RRCTY = '0'
               AND   RVERS = '001'
               AND   BUKRS = XBUKRS
               AND   RYEAR = XGJAHR
               AND   RACCT = XSAKNR.
        CASE TYPE.
          WHEN 'TW'.
            RESULT-WAERS = GLT0-RTCUR.
            RESULT-VALUE = GLT0-TSLVT.
            DO GLT0-RPMAX TIMES
               VARYING BALANCE FROM GLT0-TSL01 NEXT GLT0-TSL02.
              RESULT-VALUE = RESULT-VALUE + BALANCE.
            ENDDO.
          WHEN 'HW1'.
            RESULT-WAERS = BK_METHODE-HWAE1.
            RESULT-VALUE = GLT0-HSLVT.
            DO GLT0-RPMAX TIMES
               VARYING BALANCE FROM GLT0-HSL01 NEXT GLT0-HSL02.
              RESULT-VALUE = RESULT-VALUE + BALANCE.
            ENDDO.
          WHEN 'HW2' OR 'HW3'.
            IF XGLEDTAB-CURRNUMBER = '3'.
              GLT0-HSLVT   = GLT0-KSLVT.
              GLT0-HSL01 = GLT0-KSL01. GLT0-HSL02 = GLT0-KSL02.
              GLT0-HSL03 = GLT0-KSL03. GLT0-HSL04 = GLT0-KSL04.
              GLT0-HSL05 = GLT0-KSL05. GLT0-HSL06 = GLT0-KSL06.
              GLT0-HSL07 = GLT0-KSL07. GLT0-HSL08 = GLT0-KSL08.
              GLT0-HSL09 = GLT0-KSL09. GLT0-HSL10 = GLT0-KSL10.
              GLT0-HSL11 = GLT0-KSL11. GLT0-HSL12 = GLT0-KSL12.
              GLT0-HSL13 = GLT0-KSL13. GLT0-HSL14 = GLT0-KSL14.
              GLT0-HSL15 = GLT0-KSL15. GLT0-HSL16 = GLT0-KSL16.
            ENDIF.
            IF TYPE = 'HW2'.
              RESULT-WAERS = BK_METHODE-HWAE2.
            ELSE.
              RESULT-WAERS = BK_METHODE-HWAE3.
            ENDIF.
            RESULT-VALUE = GLT0-HSLVT.
            DO GLT0-RPMAX TIMES
               VARYING BALANCE FROM GLT0-HSL01 NEXT GLT0-HSL02.
              RESULT-VALUE = RESULT-VALUE + BALANCE.
            ENDDO.
        ENDCASE.
        COLLECT RESULT.
      ENDSELECT.
      IF SY-SUBRC = 0.
        CLEAR I_RECURSIV.
      ELSE.
        ADD 1 TO I_RECURSIV.
        I_GJAHR = XGJAHR - 1.
        PERFORM READ_LEDGER TABLES  RESULT
                                    XGLEDTAB
                            USING   XBUKRS
                                    XSAKNR
                                    I_GJAHR
                                    TYPE.
      ENDIF.
    ENDFORM.                               " READ_LEDGER
    BEGIN OF INSERTION - NOTE 70203
    *&      Form  BKPF_UPDATE                   P30K137533
    FORM BKPF_UPDATE.
    *--- Stornovormerkung löschen? -
      CLEAR D_STORNO.
      SELECT SINGLE * FROM BKPF WHERE BUKRS = T_BSXX-BUKRS
                                AND   GJAHR = T_BSXX-GJAHR
                                AND   BELNR = T_BSXX-BELNR.
      IF BKPF-STBLG NE SPACE.
        D_STORNO = 'X'.
      ENDIF.
    ENDFORM.                               " BKPF_UPDATE
    END OF INSERTION - NOTE 70203
    If you find solution to your answer donot forget to reward points
    Regards

  • Configuration / Uploading of Electronic Bank Statement Steps

    Hi
    I have confirgured the electronic bank statement functinality, I have used interpetaton alogrithm as 015, In Assign External Transaction type to posting rule, we have only two exteranal transaction 1001 for Credit and 1002 for debits in bank, we have assigned posting rule Z1 to external transction 1001 and Z2 to 1002.
    I have received the following bank statement in multicash format.
    Line Items File UMSATZ.TXT
    Bank
    Account
    Statement Number
    Value Date
    Blank column
    Text
    Blank1 column
    Blank2 column
    External transaction code
    Reference
    Amount
    Curr
    Blank3 column
    Statement Date
    Header File AUSZUG.TXT
    Bank
    Account
    Statement Number
    Date
    Curr
    Opening Balance
    Credit
    Debits
    Closing
    Kindly advise the step to upload the above files and how the system will identify the reference column and external transaction from the statement to post based on above configuration.
    Basically I want to ask that we are aware that bank statement  have this column, but how SAP will identify the same and post.
    Awaiting for early reply.
    Best Regards
    Mukesh Mokashi

    Hi Srikanth
    I have executed the test program, the system has posted three documents document pertaining to GL accounts as mentioned below:
    1. G/L acct postings
    Cash disbursement
    00011 FB01  SA        001  40  215019      INR       30,000.00-
                                       002  50  215002      INR       30,000.00
             Document 25000037 was posted in company code 1000
    Outgoing checks
    00012 FB01  SA        001  40  215019      INR       31,000.00-
                                       002  50  215001      INR       31,000.00
             Document 25000038 was posted in company code 1000
    Outgoing checks
    00013 FB01  SA        001  40  215019      INR       32,000.00-
                                       002  50  215001      INR       32,000.00
             Document 25000039 was posted in company code 1000
    Files created
    LI file
              C:\Documents and Settings\10000058\Desktop\UMSATZ1.TXT
              Lines:                3
    Stmt file
              C:\Documents and Settings\10000058\Desktop\AUSZUG1.TXT
              Lines:                1
    2. For Customer Open Item it has show error as "(GLT2 001) Item category 04000 not allowed in accounting transaction 0200 /0001"
    Point No.1
    I am confused what system has performed and how the GL codes are picked for posintg for point no.1, further the message
    shows files are generated, the file contents are blank.
    Point No.2
    Error for customer open item creation
    Can you please explain the above points.
    Best Regards
    Mukesh Mokashi

Maybe you are looking for