Hello everyone,



The purpose of this blog is help to identify the root cause of error FS 861 in External Tax System (SABRIX, VERTEX and TAXWARE).



Error FS 861 can be a generic error resulted from RFC_CALCULATE_TAXES_DOC when external tax calculation is used. The cause can be wrong jurisdiction code, jurisdiction code structure, country not supported and so on.



The steps bellow should be followed to identify the root cause of error FS 861.



1. Check if company code is US,CA,PR:



According with SAP Note 1738657, SAP supports external tax systems only for the country codes US, CA and PR (Puerto Rico). This means the country of the company code must be one of these countries so that taxes are calculated using the external tax system and are also updated there.




2. Check jurisdiction code structure defined in transaction OBCO:








The default jurisdiction structure is:

Sabrix    = 2,2,5,5

Taxware = 2,5,2

Vertex    = 2,3,4,1




3. For non-taxable scenarios check the default jurisdiction code defined in transaction OBCL:


Enter I0 (for input tax), O0 (for output tax) and a dummy jurisdiction code for the relevant company code(s) using TAXUSX. The system uses this dummy jurisdiction code also for export business transactions. (If you create a billing document in a country with tax jurisdiction code, when the goods recipient is in a different country with or without tax jurisdiction code.) Please have a look at note 419124 where the suggested export jurisdiction codes used by the different External Tax Interface Partners are listed.




spro obcl.PNG





  4. For exporting scenario you have assigned for jurisdiction code in customer master data.:


As informed in SAP Note 419124 the Vertex jurisdiction code for export transactions is '770000000'. For Taxware, the jurisdiction code is IT0000000.


Please check if all new released notes are implemented:





2016990 - Export between United States and Canada

1628962 - Export with invalid tax jurisdiction

1768395 - Export with invalid tax jurisdiction (1)

1809374 - Export with invalid tax jurisdiction (2)

1899214 - Export with invalid tax jurisdiction (3)

2016058 - Export with invalid tax jurisdiction (4)


2095331 - Export with invalid tax jurisdiction (5)




5. Check the Condition used in SD:


Trigger conditions UTXD and UTXE are used in external tax calculation. Both conditions must be used together in the pricing
procedure (for technical reasons). Condition UTXD has value formula 500 and condition UTXE has value formula 501. They are triggered only by FM
PRICING_COMPLETE. The RFC is called only once per document. This is called the MaxTax procedure (developed by FI), and it is supposed to be faster. For more details related SD customizing please check SAP WIKI
Tax jurisdiction - ERP SD - SCN Wiki




6. If the above customizing is correct check the parameters passed to external tax system and received in debug mode:




  1. Transaction se24
  2. cl_xtax_rules_rfc
  3. double click on method RFC_CALCULATE_TAXES_DOC
  4. and scroll down till you see where the RFC_CALCULATE_TAXES_DOC function call is made
  5. set a break point at the break point call function 'RFC_CALCULATE_TAXES_DOC (to check the input parameters) and one after the  call function (to check the output parameters)
  6. and do the transaction again
  7. inspect the input structures: tax_cal_item_inxx: outgoing document values to tax system -->>> If you see some wrong information this is caused by wrong customizing. In this case please review in detail the configuration guide attached on SAP Note 392696 - R/3 Tax Interface Configuration Guide.

   8.  and do F6

   9. now inspect the error structure and output structure:

      tax_cal_item_outxx: incoming values from tax system

tax_cal_jur_level_outxx: jurisdiction level  --->>> if you see an error, this has to be analyzed by company responsible for the External tax system




I hope this helps!




Hi Colleagues,


Through the transaction or program, you can discover the number of customers, vendors, GL accounts, assets or normal FI documents in a client, company, by period, chart of accounts, etc. Basically the program research the data master tables with company codes, chart of accounts and so on.

RFAUDI01 - Number of Customer Master Records - S_ALR_87101051


The screenshot above indicates the number of customers according the KNA1 table and KNB1 table per company code.

RFAUDI02 - Number of Vendor Master Records - S_ALR_87101052


The program above check all the vendos by LFA1 and/or can separate by company code.

RFAUDI03 - Number of G/L Master Records - S_ALR_87101049



The screenshot above indicates how many items there are in SKA1 table per chart of accounts. And below, indicates how many items there are in the SKB1 table per company in each chart of accounts. This is very useful when the client has many company codes assigned to a chart of accounts. There aren't a option to select parameters.


RFAUDI04 - Number of Asset Master Records - S_ALR_87101050


Technically, the program check ANLH table. You do not have access to selection parameters like a research by company code.



RFAUDI07 - Number of Standard FI Documents - S_ALR_87101054 is shown below:



In this case, the program will check the BKPF table by company, ledger, type of document, period and year, but you can insert posting date to research in a specific period. Remeber that normal documents are all documents that aren't special GL items, parked items or noted items.


Also, you can run these transactions in backgorund mode and get the list in the SM37.




Hi Colleagues,


Running NGLM tcode, is displayed many settings for GL to analyze, like screen shots below. You find detailed information on the organizational units ledger, company code, controlling area, and operating concern. Also, about the Document Splitting: In this area, you find options for the detailed analysis of the document splitting settings.


In the Data Analysis area, the monitor offers functions for the quantitative analysis of the transaction data updated in the line item tables, totals record tables, and document splitting tables of General Ledger Accounting. First start the Run Data Analysis function as a background job. The analysis data is stored automatically in a data file. You can then use various criteria to analyze.


This helps, e.g when you wants to check what characteristics of Document Splitting, what chart of accounts is assigned, fiscal variant, scenarios from Document Splitting, what total table is active per ledger, CO details and many other functions.


Follow, there're some steps:







The tcode allows to you run other transactions related, like Maintain Company Code (OBY6) and many other.



To view Document Splitting characteristics




And again you can run transactions to maintain Document Splitting




Also, is possible to check CO details







I attended this SAP webcast this morning and was surprised at the low attendance.  There are many improvements in FI-CO and no, I am not talking "Simple Finance" but the core FI-CO modules.


See below:


Customer Connection for Financials started last December


The usual Legal Disclaimer applies


Figure 1: Source: SAP


This customer connect started last December and closed workspace in February


SAP checked ideas which had the most subscriptions


They evaluated during the select phase


In April they held selection call


Subscribe means you will use improvements productively


Figure 2: Source: SAP


Figure 2 shows 17 improvement requests are delivered in CO


2 are in progress


2 are in handover


11 has FI delivered with 1 improvement request rejected


Figure 3: Source: SAP


Figure 3 shows one of the most popular requests, display controlling area


Figure 4: Source: SAP


Some of the more interesting notes (to me) listed in Figure 4 are below:


Figure 5: Source: SAP


Figure 5 shows an improvement for KOK5


Figure 6: Source: SAP


More CO improvements are listed in Figure 6


Figure 7: Source: SAP


I’m surprised at Figure 7, exporting to Excel from background jobs, but I understand it at the same time too, having done this many times myself.




This note was just released


Figure 8: Source: SAP


I think the most interesting improvement includes all the notes listed with OB52 posting period automation – I only list a few below:


OB52 http://service.sap.com/sap/support/notes/1993365


Parallel opening of periods http://service.sap.com/sap/support/notes/1993365


Figure 9: Source: SAP


Figure 9 shows “display full user name” but looking at the note it says “Branch to user data” http://service.sap.com/sap/support/notes/2073896


Visit www.sapimprovementfinder.com to find delivered improvements

Hello Everyone,



The idea of this blog is summarize the most commun actions to improve the performance in FBRA as well as the SAP notes related with each topic suggested.



-> If change selection parameters does not solve the issue you can use FBRA_LOC transaction as described in SAP note 487347:


487347 - FBRA: Overflow of the lock table


This note suggests to use transaction FBRA_LOAC as a workaround for problematic cases.

For avioding the lock table overflow, there are these possibilities:

1. Extend the profile-parameter "enqueue/table_size", as per note 13907

2. Reduce BKORM entries as much as possible, i.d. for all company codes
   The less entries in table BKORM exist the more faster is FBRA or
   FBRA_LOAC. Please refer to steps 2. and 3. of note 487347.


Additonally, please review the following recommendations

1.      Use Note 1320810 Z_ENQUEUE_PERF during both high and low load.

2.      Test changing the following parameters enque/server/threadcount and enque/server/use_spinning to true.

3.      Run niping during both high and low load.

4.      Use test in okcode in sm12 and set logging on for 15 seconds and run mass calls, starting with a thousand during load and check stad record for enq performance.

5.      During problem time check for rejects in sm12. If refresh shows increases of hundreds, points more to an application issue.

6.      Consider moving the standalone enqueue server to a dedicated system.

7.      Continue application analysis.




-> If you are receiving runtime error TSV_TNEW_PAGE_ALLOC_FAILED in transaction FBRA can be that table BKORM has too many entries.

This table could contains millions of old and very old correspondence requests, which never have been printed and therefore never been deleted from this table.

If you don't print your correspondence requests, you have to reorganize table BKORM from time to time by means of report SAPF140D. This
report can be reached for each user via transaction F.63. The BKORM should contain normally only current correspondence requirements which were not printed yet and possibly already printed, which are not older than 14 days, for a possible reprint. There is no need to keep printed correspondence in BKORM for a long time.
Many of these correspondence requests were created a long time ago and you do not intend to print and to send these correspondences. Such correspondences requests can be safely deleted. Please take the following precautions:
  1. You should run SAPF140D according to note 17831 on a regular basis (every two days or at least weekly) to delete all accounting
correspondence requests out of BKORM that are finished since (e.g. one week).
  2. The same report should be used to delete all accounting correspondence requests that have no expiry date at all('entries
withoutprint date under 'Further selections').  There is also a possibility to run the report in test mode.
  3. In the future, you should use SAPF140 as follows: On the selection screen, under 'Program Control' there is a field called 'Delete if
finished since'. This field has to be filled with a certain number of days (e.g. 7). You could create a variant and then always use this
variant for SAPF140 for which this field is set.
If entries in BKORM are deleted to correct size, FBRA should work fine.



I hope that I could help!



Kind Regards,


Hi guys,


Just a tip about this posting where I was having some doubts why the post was not going through the BADI.



If the post is a Down payment request or a Noted item, you must complement the BAPI_ACC_DOCUMENT_POST using:


    WHEN 'DP'.

      ls_bapiache09-obj_type = 'BKPFF'.

      ls_extension2-structure = space.

      ls_extension2-valuepart1 = 'BUS_ACT'.

      ls_extension2-valuepart2 = 'RFST'.



Implement the BADI_ACC_DOCUMENT:



The BADI_ACC_DOCUMENT has to have the following filter:



And the Method CHANGE should be like:


METHOD if_ex_acc_document~change.

  FIELD-SYMBOLS <accit> TYPE accit.

  DATA ls_extension2    TYPE bapiparex.


  IF c_extension2 IS NOT INITIAL.

    READ TABLE c_extension2 INDEX 1 INTO ls_extension2.

    IF ls_extension2-valuepart1 = 'BUS_ACT' AND ls_extension2-valuepart2 = 'RFST'.

      c_acchd-glvor = 'RFST'.


      LOOP AT c_accit ASSIGNING <accit>.

        <accit>-bstat = 'S'.





Hello everyone,




In the last few weeks was released notes 2092366 and 2083799 which might be important for the parking using BAPI scenario. 


Document parking with accounting BAPIs could only be achieved using a custom enhancement (BTE or BAdI implementation). 


With note 2092366 SAP now officially support the functionality of parking documents using the accounting BAPI, but only under the restrictions listed in the notes 2092366 and 2021422 With this scenario no manipulation of TCODE allowed and only for object type BKPFF.


The official solution in note 2092366 will only be delivered in support packages! A manual implementation using SNOTE is not intended to guarantee that all previous notes regarding this functionality are available in the customer system.


The more important note for you might be 2083799. This SAP Note describes various posting processes and specifies which data must be transferred to the
BAPI to post the relevant process. The idea is document all possible posting scenarios supported by the BAPIs in this note. The developers still working in this note so if a customer wants to post another scenario which is not yet documented in the note, it does not mean the BAPI does not support this.


Related notes:

2092366               Parking with BAPI_ACC_DOCUMENT_POST

2083799               Composite SAP Note: Postings with Accounting BAPIs

2021422               Vorerfassung über RWIN mit unerlaubtem TCODE oder AWTYP (not translated yet)




I hope it helps! Any sugestions please let we know!





Hi all,


We already have new notes just released for 1099 reporting, where Print Forms Layouts in Smartforms and PDF format are available.


Two mainstream notes are available:



2074358 - US TAX REPORTS - PRINT FORMS LAYOUTS 1099-MISC, 1099-G, 1099-INT, 1099-K, 1042-S




2074359 - US TAX REPORTS - PRINT FORMS LAYOUTS 1099-MISC, 1099-G, 1099-INT, 1099-K, 1042-S

for customers who are in releases 46C, 470 and 500.


According to those notes which are announcements, it will be updated by the time final notes with corrections and updated forms and files would be released.


Those would be the main channel where new corrections and notes related to 1099 that are released will be maintained.


Please follow up on those notes for latest updates about 1099 Print Form layout updates for the Tax Year 2014 to be submitted in 2015.





I hope it helps to address you your concern about this subject.


Danton Prestes

Head Office and Branch Accounts


In some industries,branches of a company sell their goods independently but the accounting for these sales is performed centrally (at the head office). You can represent this type of organizational structure in the R/3 System by using head office and branch accounts.

First you need to create head office and branch accounts. The sales orders are managed in the branchaccount. The sales and transaction figures, however, are not posted to this account but rather automatically to the head office account. Payments are cleared centrally by the head office, meaning that outgoing payments can be made for several branches in one step, using the head office account.




Link between Branch Accounts and Head Office Account

To link branch accounts to a head office account, you must enter the number of the head office account in the Head office field in the branch account master record. This field is contained in the company code area of the master record.

The head office account can be any vendor account except one-time accounts or branch accounts themselves. Branch accounts and head office accounts must belong to the same company code.










Line Item Display

When you are entering the parameters for line item display, you should note the following: for head office accounts, enter the key 004 in the field Sort key. This instructs the system to display the line items for the head office account sorted by branch. This key is defined in the table for allocation rules.

Invoice posting to branch vendor






Document gets posted in the head office with branch in assignment field



FBL1n shows in head office account



FBL1n for branch account gives below message




FBL1n for all branches under the headoffice



Payment run



FBL1N after payments



You can set up your system to cater for written correspondence with vendors a) for the head office, broken down per branch or b) for each branch individually. If you want to create correspondence (such as dunning notices and account statements) for the individual branches instead of the head office, you have to select the Local processing field in the vendor master record of the head office on the Create Customer: Correspondence screen.


You can also define payment methods in the master records of the branches and head offices. For example, if you want to have certain payment methods for particular branches, enter these in the master records of the branches concerned and do not enter any payment method in the head office master record. If you enter payment methods in both head office and branch master records, all payment methods are possible.



Head office customer



Branch office


Invoice posting to branch customer




Posted successfully to the headoffice customers with branch details



Dunning run for headoffice customer


Headoffice customer successfully dunned


Important Notes :


> At Branch accounts system will not allow you to check clearing with customers or vendors. This has to be done at headoffice level


> All the dunning notices related to the branch go to the head office account and the payments (both incoming & outgoing) are made by the headoffice. However if you want the make the dunning and payment programs use the branch account instead, you need to select  "decentralized processing" field in
"correspondence" tab in the head office master data.

1) Different types of Processing Types in FF68.

2) How to delete statement record saved in FF68.


1) Different types of Processing Types in FF68.

Below are the different types of processing types in Manual entry, I am going to show its controls and system behavior.

1: Further processing as batch input (generate online)

2: Further processing as batch input (generate as batch)

3: Further processing as background job

4: Further processing online

Image 001.gif


1: Further processing as batch input (generate online): in this process when you click on save system will show message (statement/list posted) and creates a batch input session, shows the statistics.

Image 002.gif

Next step> Execute batch process to post a document.

Image 003.gif

2: Further processing as batch input (generate as batch): in this process when you click on save system will show message (statement/list posted) and creates a batch input session, it will not show the statistics.

Image 004.gif

Next step> Execute batch process to post a document.

Image 005.gif

3: Further processing as background job: in this process when you click on save system will show message (statement/list posted).here system posts document through background.

Image 006.gif

If you check in FEBA_CHECK_DEPOSIT you can find document number highlighted.Image 007.gif

FB03 Document number

Image 008.gif


4: Further processing online: in this process when you click on save system creates document and shows the statistics.

Image 009.gif


2) How to delete statement record saved in FF68

Note: Delete the manual entry list before running batch process, don’t delete after created accounting document.

Below is the process to delete, we can delete list entered in ff68 using program RFEBKA96.


  Save a statement record in ff68 below screen is an example

Image 010.gif

Go to SE38 and program RFEBKA96 and Execute

Image 011.gif

In the below screen select 0002

Image 012.gif

Select your Group number ‘2222’

Image 013.gif

Image 014.gif

Select the tick box at left hand side

Image 015.gif

Click on yes

Image 016.gif

Now you can see details the record has deleted from the tables.Image 017.gif


Sada Bandla

This is the first time I am writing any blog in my life, so please bear in case its not in a structured manner.
Pre requisite: The reader should be aware of the use of Search strings in the Electronic bank statement (preferable MT940 file format).
A couple of years back when I started learning the configurations of Electronic bank statement, I bumped into this sap node in the SPRO path called, " Define Search String for Electronic bank Statement". I was amazed with the use of this functionality and the power it provides to the functional consultant to meet the basic requirements with no involvement of ABAP developer.
While going through the SAP help document for this node I found various usage of this search string and how we can populate the required value in the target fields of any accounting document. There are some basic frequently used fields like cost center, profit center which are provided as default target fields in configuration step of 'Search string use'. In case the required field is not available then you can use the option of BDC fields as the target field.
While reading the details on the use of BDC fields in the help document (see below snapshot) I realize that it only talks about identifying a string of data from the Bank statement and then passing a fixed value to the required BDC field.
But, then I asked myself, " What if my data in the file is not the same always and I need to get this dynamically varying data from the bank statement to fill the same BDC field?".
Do I need to create 'n' number of search strings based on each value that appears in the bank statement? or Is there any other option?
After a few trial and error methods, I found the below solution or work around or whatever you would like to call it out..
Lets take a scenario that based on some identifiers appearing in your bank statement, you need to populate the Reference key 3 (XREF3) field of the accounting document with some data from the bank statement itself.
Lets assume we are using MT940 file format for the Electronic bank statement and below is a sample data of tag 61 and tag 86.
Now, in the above example we are doing some FOREX transactions (like hedging) with the bank for which the reference contract number is as highlighted above. If we want to populate this contract number in the XREF3 field or another field of the SAP accounting document then we can do it with the below trick ,
Assumption: the contract number (length 6 digits) always follows after /SR/CONTRACTXXXXXX in the tag 86 of the file. This acts as an identifier for us. In case you are not able to identify a fixed value then you can consult with your respective bank or ask them to add a fixed identifier before the required data.
Step 1: Define first search string say 'String1'
Srch strg name: String1
Description: Identify data sequence from the file.
Search string: /SR/CONTRACT######
Mapping: empty, empty.... empty (i.e. you need to keep the mapping value as empty).

Step 2: Define another search string say 'String2' whose search string definition is same as the first one but with slight change in the mapping value.
Srch strg name: String2
Description: Getting the contract number from the file.
Search string: /SR/CONTRACT######
Mapping: empty, empty.... empty,#,#,#,#,#,# (i.e. you need to only map the # digits as it is and rest keep it empty).
Step 3: Assign the Search String 'String1' defined in step 1 to the correct target fields.
In this step add your required details like company code, house bank, account ID, etc. with Search string as 'String1', corresponding target field as 'BDC field name 1’ and in the Mapping Prefix enter the field name i.e. BSEG-XREF3 in our case.
Step 4: Assign the Search String 'String2' defined in step 2 to the correct target fields.
In this step add your required details like company code, house bank, account ID, etc. with Search string as 'String2', corresponding target field as 'BDC field value 1’. The Mapping Prefix field will be blank in this case as the value would be determined from the file itself based on the search string definition.

That's it you are ready to dynamically get the value from the file.

Didn't you realize the trick..  
No... well below is the explanation,

In case you read the SAP help document (see the first snapshot) then it asks to maintain the target field as 'BDC field name 1' and 'BDC field value 1' for the same search string and thus we are only able to pass a fixed value via mapping prefix to the BDC field of the accounting document.

In my case, we define two search string which is having the same definition but different mapping rule. Here, the first search string is used to identify the sequence in the tag 86 of the bank statement and if its successful then it will fill the target field 'BDC field name 1' with BSEG-XREF3 (as per our example). While the second search string (having the same definition) will be used to identify the dynamic value from the file and then to fill the target field 'BDC field value 1'  as 'XXXXXX' (from the file) i.e. value for the BDC field BSEG-XREF3.

As the definition of both the search string is same, then either both will be successful or both will be failed. There won't be any case were either of them is successful and this is the Trick which I have used to identify the BDC field name with first search string and then the BDC field value with the second search string.

This really works. Try it out and let me know your results

Please share your suggestions, corrections or any other pointers in the comments section.

Thanks again for reading this blog

Disclaimer: The above work around mentioned is based on my personal experience and is not copied or referred from anywhere else.

You use this program in new General Ledger Accounting to perform closing and opening entries for a change in fiscal year.




For classic General Ledger Accounting, you use the program: Year-End Postings (RFSUMB00).




This program creates the following postings:

    • Postings for year-end closing of the profit and loss statements for the fiscal year result

Account Selection  Parameter:      E      1st Run: P&L Accounts


    • Postings for closing and opening the balance sheet accounts for the new fiscal year

                        Account Selection  Parameter:      P      2nd Run: Balance Sheet Accounts


In this program, the postings are created in real time using the interface to Accounting (with reference transaction AWTYP Reference procedure      = GLYEC          Year-End Closing Doc).


The totals records resulting from the closing and opening entries are updated with RRCTY Record type = 5 to be able to distinguish them in reporting from totals
records from operational postings (record type 0). The postings are made using the account assignments in the totals record table.


To summarize balances using specific account assignment characteristics, you can use the Business Add-In (BAdI)

Summarize Balances Using Account Assignment Characteristics.



Validation is not performed for transferred account assignment characteristics.

You can choose between the following country versions of the program:

    • Italy        SAP&ITALY      Standard Variant for Italy
    • Slovakia SAP&SLOVAKIA Standard Variant for Slovakia
    • Turkey    SAP&TURKEY              Standard Variant for Turkey
    • Portugal  SAP&PORTUGAL      Standard  Variant for Portugal
    • Romania SAP&ROMANIA          Standard      Variant for Romania
    • France  SAP&FRANCE  Standard Variant for France
    • Colombia  SAP&COLUMBIA    Standard Variant for Columbia


When creating your own report variants, always use the respective system variant SAP&* as a template.
Parameters that are set in the background in these system variants influence how the report performs postings. To ensure that the posting logic meets the
legal requirements for the respective country, you should always start the report with the respective system variant or with a modified copy. The standard
delivery corresponds to the posting logic for Italy.





You must fulfill the following prerequisites before you can execute the program:

  • The accounting  reconciliation of last fiscal year has been printed out.
  • The posting periods for posting the year-end closing and for opening the current fiscal year is open.
  • The last transaction for the balance sheet has been performed.
  • Apart from the special periods for closing entries, the posting periods of the last fiscal year are closed.
  • The accounting reconciliation of current fiscal year has been printed out and the totals have been validated.



Customizing prerequisites: 

Closing/Opening Postings (Specific Countries Only)    
Define Account Determination

Table: TABKT


You need entry’s in table TABKT before you can start the report we need dummy account for Vendor end Customer postings

For the account determination, you have to assign a dummy customer or vendor account to your reconciliation accounts. Your closing/opening postings are posted to these accounts.

For reconciliation accounts for special G/L transactions you have to enter the special G/L indicator.



Before you can assign a ummy customer or vendor account to a reconciliation account, you must have reated this dummy account with master data in the required company code. You ust be able to post to the account directly.



To assign a dummy ustomer or vendor account to a reconciliation account, proceed as follows:

            1. Choose New Entries.
            2. Enter the company code for which you ant to make the assignment.
            3. In the field G/L Account, enter the umber of the reconciliation account, and in the field Account Type, enter the account type for the reconciliation account (customer or vendor).
            4. In the field Customer or Vendor nter the account number of the dummy customer or vendor account.
            5. In the field Sp.G/L, enter the indicator for a special G/L transaction.
            6. In the fields Debit and Credit enter the posting keys for the debit and credit postings to the dummy customer or vendor account.
            7. Save your assignment.









Year-end closing entries for profit and loss statements

The program saves the annual net profit or loss in table FAGL_TRVOR as the comparison value for closing the balance sheet accounts.



In Turkey, you have to close account group 7 separately. To do this, use the program Turkey: Closing Account Class 7 (RFIDTRCLACCL7).

Since the postings are made using the reference transaction GLYEC, you can make postings directly to G/L accounts for which the Post Automatically Only
indicator is selected. You cannot enter any other characteristics or account assignments.


Before performing the program in an update run, ensure the following:

  • No other postings are made in your system at the same time.
  • For  the postings with this program, you use a separate document type with its own document number range. This enables you to clearly identify this type
          of posting in reporting (document journal).


Run the  Program with the following Parameters for opening postings 2013

Select your company code - fiscal year 2012 base for the opening postings 2013






Accounts Tab





The procedure is as follows regarding to the P&L Accounts:


  • 1st Step: Closing balances of revenue accounts are 'moved' to  REA (retained earnings account) defined in the customizing OB53. Closing
    balances of expenses accounts are moved also to REA.
  • 2nd Step:  The total debit balance of REA is moved to CLosing PL account - defined as paramater  1 in the tab Accounts of the report. The
    total credit balance of REA is moved to debit side of the  Closing PL account.
  • 3th Step: The total balance from the Closing PL account is moved to  Net Result Account defined as parameter  2 in the tab Accounts.




Go in tab Postings use two Document Types 

One for the Closing and one for the Opening 




Start the report and generate the postings.

In the Log you can see the selected accounts with the total amounts and the totals what the program would post.

As a functional consultant, we might have seen SPRO screen day in and day out. But, many of us may have missed to notice, there are many additional functionalities available in SPRO. Usually, we just run to the node where we wish to do the changes, complete required changes and rush for testing.


Through this blog, I would like to bring to the notice of fellow community members about many unnoticed functionalities available in SPRO.


1. How to find the list of tables that are updated through particular SPRO node?


Place cursor on the node where changes are being done and go to below path in SPRO.


In next screen, double click on underlying view.

Note: Usually last 4 letters of IMG activity ID is transaction code for that node.


Select other view and double click on Piece list option.


Next screen shows the list of tables that are updated under this node.


2. How to Search in SPRO?


Looks pretty straight forward option right? I am sure everybody must have already used this option.


But did you notice “Text Index info” in the search popup?


SAP search engine uses Indexing concept. We can correlate this to normal text book index. Index have the address number of a topic like page number. Similarly, SAP stores the database address of the nodes of SPRO. When search is done, system would first go to this Index data and find the position of the node in SPRO path. Then respective node would be pointed out. If multiple addresses are found for the search word, complete list is displayed in popup. We can further navigate by selecting appropriate item.


System has the information on when was last index generated. If we have implemented some patches/upgraded system to next version, we may face issues with search engine. In this case, just regenerate the Index. It is suggested to do this activity in background with the support of BASIS team.



3. Expand all:


This option will expand all the sub-nodes of a particular parent node.


4. Position:


This helps in scrolling down a node to topmost row. Place the cursor on the node and click on position. This action moves the node to topmost row.


5. Change logs:


Precondition for this functionality is, change logs are active in system. For the reasons related to performance and database optimization, change logs are usually activated in development system only.


This displays list of all changes done in the node with details like date, time, change done by user ID etc.


Enter appropriate selection parameters in next screen and execute.


If the node has multiple tables (How to find was discussed earlier), select the required object in the popup and proceed. Output would show the changes done in the selected period and object.


6. Additional information:


Document name: This is the name of the documentation key with which IMG documentation is stored.


IMG activity: Each node of SPRO is stored with the key field as IMG activity name. This is the unique key to identify a particular node in SPRO.

Attributes: Each SPRO node has different attributes. These attributes are stored with key field attribute key.

E.G.: If a node is critical/non-critical, mandatory/optional, is it country specific etc.


Maintenance object: This shows the name of the maintenance object which has the information of list of tables/views which are updated through that node.

Enhancement ID: This is used to enhance SPRO/add any custom paths in SPRO.


E.G: If you want to add some custom add-on to SPRO paths, you can enhance it with this option. Check t-code S_IMG_EXTENSION for more details.

Release notes: By selecting show notes, we would see small ‘i’ Icon beside the SPRO node. Clicking this would list the component names and respective release version through which this node was created/changed.


Other attributes:


Below attributes are self-explanatory. Name itself says what that option stands for.


BC Sets:

BC sets (Business configuration set) are used for collecting the customizing settings. They can also be used for a group  rollout, where the customizing settings are bundled by the group headquarters and passed on in a structured way to its subsidiaries.
SAP has delivered BC sets for some standard industry processes. We can create custom sets as well. Please check out below WIFI which has detailed information about this.



Business add-ins: This option would display, if there are any BADIs available for a node.


Translation: This is used for maintaining translations for the text fields available in a node (If applicable).


Hope you enjoyed reading this and got to know some new things


Please feel free to share your feedback.




Note: Assuming that reader is aware of MM-FI integration concepts. You can go through below blog  as well to understand the MM-FI integration concepts.

MM-FI integration: A conceptual understanding


Now we know how MM and FI are integrated and how the account determination happens. If we want to test inventory account determination, neither you need to do actual material posting in the system nor go through master data and customization to identify the accounts. SAP has delivered account determination simulation tool.


This helps to find how an account is determined while posting stock related transactions. We just need to input plant, material, movement type and select the transaction we would like to check say GR for purchase order, GR for process order etc. Based on above inputs, system would read customization, master data and simulate the account determination process. Apart from above, system would also identify missing account assignments for a given transaction. This would further help to analyze issues in an easy manner.


Go to T-code OMWB and close the initial popup. Click on Simulation button.


Fill in plant, material , movement type and enter. Transaction list would be automatically refreshed based on the movement type. Double click on required type of transaction to be checked say GR and click on Account assignments.



In next screen, we can see the list of all available transactions possible for this movement type, plant and material combination. Some fields like material type, valuation class etc. are derived from material master data. Some fields like valuation area, valuation grouping code etc. are derived from customization of the plant.


In this screen, we can see what all accounts are determined for different kind of transactions.


EG: For Inventory posting, you can see Debit/Credit posting keys and respective G/L accounts. If there are any missing account assignment for a given transaction, this is also highlighted with text as “Missing”.


In above example, you can see this happened for Purchase account and purchase offsetting account. We don’t have any account assignments here as we are not using this scenario. By this way, we can clearly identify the gaps in account assignment without even doing the actual posting.


We can change to different movement types and transaction combinations and see how account determination happens and based on what fields it happens. You can try this in your system for various permutations and combinations.


Second feature available with this tool is, to check the screen layout. This would help to identify any conflicts in screen layout rules for the inventory G/L account item during material document posting.


Screen layout for the inventory account item is determined at two levels.

  1. From field status group of movement type
  2. From field status group of inventory G/L account.


Click on “Check screen layout” button. In Next screen, we can see what is the field status set at movement type level and G/L account level. We should ensure that, there is no conflict between these two field status exist.


EG: We can’t have a field mandatory in one FSG and suppressed in other FSG. Posting would fail in such cases.


Sample output:


Just hover on the small ICON to see if a field is Mandatory/Optional/Suppressed/Display only. Any conflicts found should get reported in the error log in tool bar.


In case of conflicts, priority would be given in the sequence below with the exception of Required and suppressed combination which is not allowed.


  1. Suppressed
  2. Display
  3. Required
  4. Optional


Third option provided by this tool is, “where used list of G/Ls”. This would help to Identify in what all scenarios a G/L has been configured in the system.


From the main screen of OMWB, click on where used list of G/L.


Enter company code and valuation area in next screen and execute.


Sample output:


This output shows the list of valuation classes and transaction keys a G/L has been assigned to.



Hierarchy is as below.


Chart of accounts

                |-G/L account

                                |-Valuation class

                                                |-Transaction event key

                                                                |-Account grouping code


Hope this information would be helpful in your projects


Your valuable feed back/comments are much appreciated.




Vinod Vemuru

How to search BTE???

Posted by Vinod Vemuru May 13, 2014

Are you facing difficulties in finding out correct BTE to implement for your custom requirements? Doing extensive search over net/SCN? Not required now!!!


Yes, SAP has already given awesome “BTE search tool” which many people are unaware. I came across this interesting tool during my R&D and found it very helpful.

Hence, sharing this with the community.


Before we go on how to use this tool, let us go through little basics of BTE.


Business transaction event is delivered by SAP to code customer specific requirements during predefined standard processes. Call points are already defined by SAP. All we need to do is just plug in our code in the BTE based on our requirements and SAP would play it during standard process


Business transaction events are of two types.


Process BTE:


Process BTEs are called at a fixed, predefined points during the standard SAP program flow at which the system can process user defined/custom function modules instead of the standard function module. The pre-conditions/rules for calling up alternative processes are defined in the  customization of BTEs in t-code FIBF. There would be standard function module OPEN_FI function module assigned by default by SAP. If there are no custom function modules assigned in FIBF, standard function module is processed. Data and process flow of standard SAP can be changed in BTE.


OPEN_FI function module select the FM to be processed for P/S BTE.


Function module PC_FUNCTION_FIND determines the function module to process from the following tables (equal priority):


a) TPS34 Customer-Specific Function Modules

b) TPS32 Partner Function Modules

c) TPS31 SAP Function Modules

d) TPS01 Standard Function Module



Publish & Subscribe (P/S) BTE:


P/S BTEs are called at a fixed, predefined points during the standard SAP program flow. Data can only be published to another application through P/S BTE i.e. we can only export the data to P/S BTE. Changes to program flow or data can’t be performed here. The pre-conditions/rules for calling up alternative processes are defined in the  customization of BTEs in FIBF.


OPEN_FI function module select the FM to be processed for P/S BTE.


Function module BF_FUNCTIONS_FIND which is called inside OPEN_FI function module determines the function modules to process from the following tables:


a) TBE34 Customer-Specific Function Modules

b) TBE32 Partner Function Modules

c) TBE31 SAP Function Modules


(Source: Partly from F1 help)


How to search BTE:


Assume you have business requirement to implement a custom functionality to send an SMS alert to customers when dunning run is done. Since standard SAP does not have such functionality,

You can look for BTE for this.


Go to below t-codes

BERP: To search for process BTE

BERE: To search for P/S BTE


Both t-codes have same selection fields.


Select the attribute type A (Application component) and click F4 on selection attributes field.



In the next popup, drill down to the process area you are looking for. The paths displayed here are similar to SPRO path.

Select appropriate node. In this case it is DUNNING.


Path would come as shown below.


You can further restrict the search by entering other selection parameters which are self-explanatory. Now execute the program.

Output would show the list of available BTEs for the given node. Most of the times, description of the BTE says functionality.



Select appropriate BTE and use below tool bar options to explore further. We can see the sample FM delivered by SAP, interface of the BTE, Documentation etc.


Custom FMs can be created with the same interface as of sample FM. One common error seen while implementing the BTE is, custom FM interface may differ than standard FM interface.

In this case, the process would go for dump. This is because, SAP determines the FM name during run time (Dynamic call).


Similarly, search can be done based on other parameters like based on Business object name, IMG nodes etc.


You are welcome to post your comments and feedback on this blog





Filter Blog

By author:
By date:
By tag: