FEBA - electronic bank statement - change posting rule
Hi Experts,
When processing the electronic bank statement in FEBA, there was an error in one of the lines. The status of the line is ' To be posted'.
I need to change the posting rule (internal transaction) but i hit this error - Item would not be posted in new transaction; transaction not changed. Message no. FV 715
Any idea how I can proceed?
Please help. Thanks!
-Charlene-
Hi,
I guess the bank statement is loaded in the system. If yes then , in addition to the above suggestions, delete bank statement, configure new rule and again run the bank reco. This is because once bank statement is loaded you cannot change posting rule in FEBAN. And also the bank statement number gets updated in SAP.
Regards
Milind Sonalkar
Similar Messages
-
EBS - Electronic Bank Statement Multiple Posting Rule for One External Transaction Type NTRF
hello SAP Gurus,
I'm configuring EBS - Electronic Bank Statement. My requirement is for Bank External Transaction Type NTRF <for Incoming Payment> I want to assign 2 posting rules for Posting Area 2 that is Sub-Ledger posting viz. <1> For the payments received from Customer which should clear the Customer Open item since it is bill to bill exactly matching the open line item and <2> For the payments which should not clear the Customer Open item since i know that they are not bill to bill and only partial against the original line item
Is this possible? if yes then how?
Currently, SAP allows only one assignment like one external transaction type NTRF => one Posting Rule <either clear the sub-ledger-system picks FB05 or just post on Sub-ledger so that not to clear - system uses FB01 >
Journal for Posting Area 2:
Bank Clearing Account Dr
To Customer Account Cr <either set this to clear with original invoice / or just post on customer so as to clear/handle it manually later on once paid fully>
So, what is the solution; how can i differentiate my incoming whether fully payment or partial payment; since bank statement always tag it to external transaction type NTRF always for any incoming payments !
regards,
`raj.Hi,
You cannot create separate rule with sub ledger postings while executing electronic bank reconciliation.The reason is your bill to bill transfers should posted to bank sub ledger account first and then you can write a BDC to clear sub ledger account.Otherwise use F.13 to clear the sub ledger account.
Regards
Chrishantha -
Electronic bank statement MT940 post with FB05
Hi expert,
I am configuring Electronic bank statement with MT940 (field 86 unstructure) format and when i upload the text file in FF_5. The system will post to FB01 but i would like to post FB05 and searching for vendor open item and make clearing.
My text file as below:
:20:20100524
:25:50070010/10000100
:28C:20210/05
:60F:D100524EUR346
:61:100524DX50NC01//CHQ
:86:C01?20?1500000002?145001
:62F:D100524EUR396
Please advice which field or word i need to change to post with FB05?
Thanks.
regards,
ng chong chuanhi Anand Raichura,
7 Clear deb.subledg.ac & 8 Clear cred.subl.acct is maintain in create account symbols? or assign accounts to account symbol? or create keys for posting rules? or define posting rules? or create transaction type? or assign external transaction types to posting rules? or assign bank account to transaction types?
Beside, is my text file as below is correct? or need to add some word to define on FB05 vendor clearing?
:20:20100524
:25:50070010/10000100
:28C:20210/05
:60F:D100524EUR346
:61:100524DX50NC01//CHQ
:86:C01?20?1500000002?145001
:62F:D100524EUR396
thanks.
regards,
ng chong chuan -
Error in FEBA- Electronic Bank Statement.
Hi Experts,
We are facing a problem with FEBA and the issue is as described below;
1. User has uploaded the Bank File using FF_5 and it got uploaded correctcly.
2. In FEBA i could see that the items/line items are marked a posted and even the document numbers have been created.
Now the issue is; If i want to see those documents then the system says it does not exist (FB03). I can display the document in Table FEBEP.
3. If i try to upload the Bank file again system doesn't allow me.
Please help in cracking this issue.
Thanks in advance for all how trys to help me in this.
Cheers..
KMBMake sure that when using FB03, that you have the correct fiscal year and company code. Usually around this time of the year (fiscal year end), the fiscal year field defaults to the current year although the document may be from the prior fiscal year.
In FEBA, on the document overview screen, try double clicking on the posted document number twice (once in the list of all items and a second time on its individual screen) and see if the system branches to the posted document and opens it for display. -
Bank statement upload - change posting rule with search pattern function
Hi Experts,
I am trying to set up electronic bank statement. When clearing customer accounts I have some cases where the posting rule should be changed.
I have for example the following text somewhere in the reference field:
CASHPOOL.
If found, I would like the posting rule changed so only GL-area is posted and not a clearing on customer account required.
I set this up in the search pattern
C > G
A > L
S > 0
H > 1
P
O
O
L
GL01 is the posting rule, that only posts area 1.
I have assigned this pattern to the specific external code and also activated it. In the simulation function in the definition of the pattern I get the result (2 hits).
However, when reading the statement (FF_5) nothing is changed and also in simulation transaction FEBSTS or in statement post-processing I do not see anything.
Does anyone know whether I could get around this with the search pattern functionality here? What and how would I need to set it up to cover those case as above?
Any help much appreciated.
Thanks + Regards
HeinHi Shannon,
we have assigned the search string as well as the external transaction in global EBS settings to 031 algorithm`(customer from document nubmer), as in normal cases customer invoices are to be cleared here and this is working fine.
For this search pattern here with GL01 we would like to change the rule.
However, my tests with statement does not work for that. The rule stays as is.
So, from your words I read that I need to have here a second rule that changes the algorithm? Is this possible, what would I need to set so the original use is still working out (that customer items are cleared).
Tanks + Regards
Hein -
Electronic Bank Statement - Assign External Transaction Types to Posting Rules
Hello,
I am trying to assign external transactions (BAI codes) to posting rules in global settings of electronic bank statement.
Here is my scenario -
If it is a credit transaction then I assign BAI code 167 to a posting rule (ex. Z555) that is assigned to GL account lets say 1234. Now I want to assign a credit transaction 167 from a different customer to a different posting rule (ex. Z666) so it posts to different account lets say 9991. SAP won't let me do this. It gives me an error that entry already exists. It won't let me assign two posting rules to the same external transaction code. Is there a way to address this scenario?
Please advise.
Thanks,
PriyaHi Priya
If you have something different to distinguish between the two transactions, you can use the search string configuration. Generally, such kind of information is available in Notes to Payee information in your bank file. The below link will help you in how the search strings are configured in SAP
EBS: configuration of search string, part 1
If the search string does not work for you, you may also at implementing the enhancement FEB00001. You can check out the relevant exits in this enhancement in t code SMOD.
Thanks & Regards
Sanil Bhandari -
Electronic Bank Statement and Bank Accounts change...Statement Upload
Hi,
I have an issue with electronic bank processing.
Currently my client is using A100 company code and bank account 123456 gl code 45000 and they are updating bank statements through electronic bank statement.
Now they have activated A200 company code and they want to use same bank account 123456 and gl code 45000 in new company code and the entire electronic bank statements need to be updated into A200 and A100 company code will exist in sap but client dont want to use this.
What customizations need to be done in SAP and how system will come to know A200 company code need to be updated when they update electronic bank statement next time?
Is there any specific customization in sap that shifts company codes and gl codes for electronic bank statement uploads?
What will happen to historic data when the same gl codes are used with different company codes?
Once the F110 is executed there will be batch job which will run to upload file...do we need to change anything here....
Jaya.Hello-
Are you saying going forward you are are not going to use A100 and start using A200? If so, from an EBS config standpoint, all you would have to do is use the same transaction type and remove the assignment of old company code & bank account + bank key to the transaction type and enter the new assignment to new company code.
Next, make sure to create all the bank accounts and clearing accounts in the new company code (assuming all the config related to bank is completed).
This is it. When you upload using FF.5, it will look at the bank account number from the upload file and look for the company code.
Hope this helps.
Shail -
Electronic bank statement customer payment and invoice(s) clearing
Hi there,
I am configuring electronic bank statements and wanting to "increase the hit rate" of automatic clearing. For this, I have configured postings, posting rules, etc. and I am testing on a bank statement we receive from the bank (this is ABN Amro in Germany) and all works fine. I see it with FEBA and the line items are posted to GL ok. I then configured the define search string for electronic statements to search in the note to payee our invoice numbers, which also are our document numbers, that the customers pay. I linked the search string use to algo 20 Document number search. I also changed the external transaction type assignment so that the appropriate posting rule refers to algo 20 too. When I use the simulation prog FEBSTS, it shows me all the documents found in the note to payee of all the items, and displays the document numbers found that match the note to payee for the few cases I have set-up for testing. All this look to me very good.
My question is as follows. Despite the above, when I get to FEBA to post/clear the posting area 2 of the matching cases, SAP links to FB05 and asks me to select line items first of all, expecting that I enter either the customer id, or the document numbers. I don't understand this, and I don't understand why it does not get automatically to the matched documents and clear them automatically. I very probably am missing something, but I don't know what and I am somwhat stuck.
I would very much appreciate some hints as to what to do to make this work.
I thank you in advance.
Jean
PS. We are running SAPKH47025
Message was edited by:
Jean WeyrichThks Ramesh for the hint but this did not change, although I changed this table so that it looks for BELNR only for all account type D.
When I hit save on the FEBA_bank statement line item to clear (in Posting Area 2)SAP brings me to the FB05 screen asking for either customer id or document no (invoice). If I feed this then it would clear the invoices I have prepared. What I would like is that SAP finds out these invoices by itself using the search I have configured which seems to work ok from the simulation transaction FEBSTS. Well when I say it works ok, this is because I see the invoice numbers that have been mapped, have been found. I also see in the Cat column the field BELNR, I see however that the column Partner remains empty (should that be filled with the customer number ?), and lastly I see that the last column Partner Type is a D for customer which looks OK.
If by any chance you have another path to drive me that would be great. Many thks -
GL account issue with Electronic Bank Statement
Hi Gurus,
I need your help and advice with the following issue. We are using ECC 6.0 and have implemented electronic bank statement. It is working fine but we havea new requirements.
Presently all the incoming ACH (ACH in) are being posted to one GL account set- up for such payments +++++++++1. Going forward, we want to post customer incoming ACH payments to seperate GL account and all the other incoming ACH's should keep on posted to the old account +++++++++1. I do not have exposure to configuring EBS and not sure how should I configure this.
I would really apreciate if you can guide me with step by step details to do this set-up.
Thanks,
Best Regards,
ShaluUsually ACH in or outgoing, the corresponding bank will send you a code.
so once you get into the config item for EBS
1. you create account symbols( ACHPAY and ACHPAY2) and assign accounts (++++1 and a debit account ++++2) respectively
2. Create posting keys, usually this is mimicked with a Z attached to the bank code for ACH payments (EX: 675 is the BAI code for ACH, create a posting key with Z675)
3. create rules for the same posting keys like debit and credit account symbols, doc types, what kind of postings it should post( clearing entry or posting to GL)
4. Create a transaction type and in the following step create external transaction types (usually bank BAI codes) and map them to posting rules and the processing types
5. finally map bank accounts to transaction types -
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,
RauHI
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 -
Customer enhancements in electronic bank statement
Hello Guys,
I have the following requirement for electronic Bank statement regarding customer incoming payments operations:
I need to clear Customer open items based on the bank data: the system should find the customer code based on his bank account number and clear the open items for this customer based on the amount and other text elements.
Do you know if I can use an existing function module or program to do so?
Thank you in advance for your help
Best regards
Pascal.Why post to the clearing account? You can directly post to the customer account.
Debit Bank
Credit customer
For this you have to create a posting rule which will be linked to the external code (BAI code if you are getting the bank statement in BAI format) and the posting rule should have 'standard algorithm' assigned to it.
Then while uploading the bank statement you have to give the range of customer invoice numbers against BELNR or XBELNR. The system will automatically identify the customer based on the invoice number on Record type 16 appearing in Bank statement and clear the open item and generate the above accounting entry.
For a detailed description of how the EBS works, please see the thread titled EBS posted by Sheena Mehta and answered by me. -
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 MokashiHi 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 -
Customer Clearing on Electronic Bank Statement
Hi,
I am facing a problem to clear the customer open items.
Let me explain the situation.
The is an invoice on the Customer Account. The entry is:
Customer A/c Dr. 100
Sales A/c Cr 100
Now, I have received a bank statement, when I posted the receipt. When I posted electronic bank statement, the entry the system is going to post is:
Bank Main Account Dr. 100
Bank Sub Account Cr. 100
There is still a debit lying in the Customer and there is a credit lying in the Bank Sub Account. How can I clear these two accounts with each other.
Any valid inputs will be highly appreciated.
Thanks in advance.
Regards,
RaviWhy post to the clearing account? You can directly post to the customer account.
Debit Bank
Credit customer
For this you have to create a posting rule which will be linked to the external code (BAI code if you are getting the bank statement in BAI format) and the posting rule should have 'standard algorithm' assigned to it.
Then while uploading the bank statement you have to give the range of customer invoice numbers against BELNR or XBELNR. The system will automatically identify the customer based on the invoice number on Record type 16 appearing in Bank statement and clear the open item and generate the above accounting entry.
For a detailed description of how the EBS works, please see the thread titled EBS posted by Sheena Mehta and answered by me. -
Electronic bank statement with CTX payment advice
Hi:
I'm trying to figure out how I can process an electronic bank statement that contains the payment advice embedded as a CTX addendum. I'm finding info how to issue an ACH and add the CTX addendi. But how can I process it when that info comes back from the bank on the electronic bank statement and I'm on the receiving end of that transaction?
Of course I'm looking to clear the corresponding customer open items along the provided payment advice info.
I do see an interpretation algorithm 032, which will look at a payment advice that has already been received prior to the bank statement. That's close, but not quite it.
Maybe the answer is 'functionality not available in SAP standard' and that will be just fine. I've got the list of all the various enhancement points for the process and if that's the route I need to take, I'll be on my merry enhancing way...
Any pointers highly welcome!
Thanks
StephenHello,
From FF.5, if you are using interpretation algorithms 11, 12 or 13,
the check encashment date ( PAYR-BANCD ) will be updated in PAYR when
the check is neither voided nor cashed. The relevant code is as under
RFEBBU10. Source Code :
CASE FEBEP-INTAG.
WHEN '000'. <- A when for every Int. Algorithm
WHEN '011'.
PERFORM SEARCH_CHECK_IN_PAYR.
FORM SEARCH_CHECK_IN_PAYR.
check is not voided nor cashed
SELECT SINGLE * FROM BKPF WHERE BUKRS = FEBKO-BUKRS
AND BELNR = PAYR-VBLNR
AND GJAHR = PAYR-GJAHR.
IF SY-SUBRC = 0.
PAYR-XBANC = 'X'.
PAYR-BANCD = FEBEP-VALUT.
So, the field PAYR-BANC is always updated with FEBEP-VALUT
(Value Date) and there is no standard way to avoid it.
If the check number in the statement is wrong, then the interpretation
algorithm could not update the encashment date. The interpretation
algorithm run only when the electronic bank statement is loaded
(hence only once) and not when FEBA is processed.
In FEBA (SAPMF40A), there is no further update in PAYR, and hence you
need to go to the Cheque Register and change the date manually in this case.
Check Note 115147 for further information.
Regards,
REnan -
Issue with electronic bank statement upload
Hi All,
Presently I face an inssue in posting electronic bank statement upload (Tcode - ff_5).
The scenario goes like this.
First we do payment to vendor using 'f110' transaction.Here the document currency is different from local currency.Let us say we paid 100 EBP i.e, approximately 177 USD.
After the payment we get statement from Bank (in this case BAI format).In the bank statement due to exchange rate difference the amount will not be exactly 177 USD but slightly different like 185 USD or may be 170 USD.
At this point we have to upload this statement using transaction 'FF_5' to system.Here obviously the differential amount goes to the system ( 185 USD or 170 USD).
Now the issue is we have to post this difference amount like USD 8 or USD 7 to a specific GL account ( 11800 or any other GL acc number ).
The 'FF_5' transaction updates the tables 'FEBKO,FEBEP' by using the programs 'RFEBBU00',
'RFEBBU10'.There is an exit also like 'FEB00001'. We can put this difference amount in one of the fields of FEBEP table by using this exit.
But the point I don't know is how to post this difeerence amount 8 or 7 USD to a specific G/l account ? I could not locate in the above program 'RFEBBU00' where the posting happens ?
Thanks for any help.
Vinod.Hi Sharaad & Naga,
Thanks for the replies.One more doubt, Will I have to use these function modules inside the exit or do I need to change the sap standard program to incorporate these FM calls ?
Thanks
Vinod.
Maybe you are looking for
-
No suggestion has worked for me to fix iTunes 10.2.1.1 upgrade!
I upgraded my iTunes when prompted 2 days ago and thought nothing more of it until yesterday when I tried to launch iTunes in order to add more songs. (I am using Windows 7 btw). Whenever I clicked on the icon to open it nothing happened and before a
-
Dynamic update to TextArea?
Heres a brief scenario Stage - Scene has 2 component - JTextArea - its text variable is binded to *'textAreaContent'* Button. On click of a button (onMouseClicked) - I am performing a FTP process - lets say that takes upto 10 seconds. during this FTP
-
HT4689 How do I get out of full screen view in mission control?
How do I get out of full screen view in Mission control so IO can close the app?
-
What is the beast/most accurate system monitoring software. As musch as I love my MOBO the monitoring software it was bundled with is less then par. I have tried nMonitor from nVidia, Speedfan, and PC wizard. nMonitor only monitors 3 temps. In Sp
-
I do an insert table and a 2x2 table appears. If I attempt to resize it by placing the mouse over the right-most grid line, clicking, and dragging, it gives me an error dialog with the title Adobe Flash Player 9. The text inside is: An Actionscript E