Why ERP at SMB’s

By Tirtha Chakravarti, Director Global Operations, Sysmetric Solutions

SMB’s are typically family owned and the younger generation of entrepreneurs are technically proficient.

They realise that they need to grow their businesses to just stand still.

Therefore they may have businesses encompassing different geographies, cultures, time zones and currencies.

This increases problems of control. Yet they wish to do all this without increasing headcount.

A one off investment in an affordable ERP takes care of many of the problems.

SAP have over the years “productised” its offerings in terms of building in best practices thereby reducing implementation times and hence cost.

The SMB adopter of SAP may therefore expect earlier ROI than was traditionally the case.

SAP have in recent years stated their objective of penetrating this space and their offerings testify to this.

Read the whole article here… http://tirthachakravarti.files.wordpress.com/2011/04/aberdeen_report-erp_in_smb-exploring_growth_strategies-en.pdf

ERP’s role for SME’s

According to official sources India’s SME’s Contribution towards GDP in 2009 was 17% which is expected to increase to 22% by 2012. There are in excess of 25 million SME units in India.

So what does this mean? SME are no more running sweat shop type outfits, manufacturing or producing components for larger manufacturers but rather increasingly becoming the mainstream provider by increased innovation and ability to invest in R&D.

This increased exposure to opportunities in the global markets combined with liberal financials policies by banks and government , there is increased thrust on aggressive revenue growth and to comply with global policies and practices for business.

SME’s processes have traditionally been very revenue driven centered around human resources. “Now” with increased exposure to global customers/suppliers and their practices combined with the changing regulatory landscape there is a need to make processes more agile and flexible. This combined with access to high-end enterprise class technology and its affordability, IT’s role in SME’s business has been changing at a rapid pace ,therefore adaptability and alignment of business processes to market needs are increasingly becoming a must.

While information Technology’s contribution to these sectors dates back to traditional development of custom tools to manage inventory, HR, payroll etc, the challenges focused by the current generation of IT adoption are in addressing niche areas such as managing complex business process spanning multiple geographies and time zones which require integrated management across all of them. This is where ERPs play a crucial role.

ERP’s implementations were complex were more effective for very large industries. Most of the early ERP adoptions failed due to its monstrous size and more importantly the organization readiness factor playing a big role.

Big ERP’s vendors in the later part of the decade came up with SME versions, and latest being large Indian SI’s providing them as on a cloud model.

Challenges that needed to be address for ERP adoption.
1. Need to clearly identify and the most impactful business process as target candidates either for increased efficiency or go to Market.
2. Asses its impact across the organization (both people and systems) and come up with robust business continuity plans or a “Plan B”.
3. Have a detailed approach to integrate the new automated business processes to existing systems and resources.( Selective business processes can be on the cloud)
4. Make it technically non intrusive to implement and maintain downstream.
5. Clearly define process ownerships, so that business can themselves maintain and be responsible for areas of execution and IT teams to supplement business with knowhow.

Therefore we see an increased need and role of a technology platform which are geared towards simplifying the process of addressing some of the challenges faced by organization from process management perspective. These platforms further enhance the ability to cope with growing business needs by way of accelerating adoption of newer technology and business models such as Cloud with least amount of disruption to existing processes and tools.

Displaying BAPI messages

Use the following code to display the messages returned from a BAPI call….

CALL FUNCTION ’BAPI_SALESORDER_CHANGE’
EXPORTING
salesdocument    = gv_vbeln
order_header_in  = wa_order_header_in
order_header_inx = wa_order_header_inx
TABLES
return           = itab_return
order_item_in    = lt_order_item_in
order_item_inx   = lt_order_item_inx
schedule_lines   = lt_schedule_lines
schedule_linesx  = lt_schedule_linesx.

PERFORM display_messages tables itab_return.


FORM display_messages  tables p_itab_return type BAPIRET2_T.

DATA: ls_msg TYPE bapiret2.

CALL FUNCTION ’MESSAGES_INITIALIZE’.

LOOP AT p_itab_return INTO ls_msg.
CALL FUNCTION ’MESSAGE_STORE’
EXPORTING
arbgb                  = ls_msg-id
msgty                  = ls_msg-type
msgv1                  = ls_msg-message_v1
msgv2                  = ls_msg-message_v2
msgv3                  = ls_msg-message_v3
msgv4                  = ls_msg-message_v4
txtnr                  = ls_msg-number
EXCEPTIONS
message_type_not_valid = 1
not_active             = 2
OTHERS                 = 3.
ENDLOOP.

CALL FUNCTION ’MESSAGES_STOP’
EXCEPTIONS
a_message = 1
e_message = 2
i_message = 3
w_message = 4
OTHERS    = 5.

CALL FUNCTION ’MESSAGES_SHOW’
EXPORTING
show_linno         = ’ ’
EXCEPTIONS
inconsistent_range = 1
no_messages        = 2
OTHERS             = 3.

ENDFORM.                    ” DISPLAY_MESSAGES

REPORT ZTRUERSP NO STANDARD PAGE HEADING.
*********************************************************************
* Display the true average response time.
* The result of this report contains the same data the ST03-workload
* overview screen has with one major difference: the values belonging
* to a defined set of abaps usually running online and taking a very
* long time to complete are ignored during the calculation. These
* abap’s response time is not a real dialog response time (even if
* they run in dialog mode) and it can completely offset the actual
* response time of ST03 as well as all the other values (cpu time,
* sequential read …)
*********************************************************************
TABLES: TRDIR.
DATA: R TYPE P DECIMALS 1, K TYPE P DECIMALS 1, I TYPE I, X TYPE I,
Y TYPE I, ELEM_PER_ROW TYPE I VALUE 8, LASTREC(8), ELAPSTIM(8).
*
DATA: BEGIN OF LIST OCCURS 10.
INCLUDE STRUCTURE MSXXLIST.
DATA: END OF LIST.
DATA: BEGIN OF SUMMARY OCCURS 50.
INCLUDE STRUCTURE SAPWLSUMRY.
DATA: END OF SUMMARY.
DATA: BEGIN OF HI OCCURS 50.
INCLUDE STRUCTURE SAPWLHITL.
DATA: END OF HI.
DATA: BEGIN OF STAB.
INCLUDE STRUCTURE SAPWLSUMRY.
DATA: END OF STAB.
*
PARAMETERS: DATE LIKE SY-DATUM MODIF ID SC1 OBLIGATORY.
PARAMETERS: SERVER(8) MODIF ID SC1 OBLIGATORY LOWER CASE.
PARAMETERS: TRUE_RSP AS CHECKBOX.
SELECT-OPTIONS ABPAP FOR TRDIR-NAME NO INTERVALS.
*
PERFORM CALCULATE.
FORMAT INTENSIFIED OFF.
* box1
PERFORM BOX USING 1 4 ‘Instance’.
SKIP TO LINE 2. POSITION 2.
* line1
WRITE: /2 ‘SAP System’,
18 SY-SYSID,
29 ‘First record’,
45 ’00:00:00′,
56 ‘Date’,
72 DATE.
* line2
IF DATE = SY-DATUM.
LASTREC = SY-UZEIT.
ELSE.
LASTREC = ’235959′.
ENDIF.

WRITE: / ‘Server’ UNDER ‘SAP System’,
SY-HOST UNDER SY-SYSID,
‘Last record’ UNDER ‘First record’,
LASTREC USING EDIT MASK ‘__:__:__’ UNDER ’00:00:00′.
* line3
READ TABLE LIST INDEX 1.
TRANSLATE LIST-SERV USING ‘s a p d ‘.
CONDENSE LIST-SERV NO-GAPS.
WRITE: / ‘Instance no.’ UNDER ‘SAP System’,
LIST-SERV UNDER SY-SYSID,
‘Elapsed time’ UNDER ‘First record’,
LASTREC USING EDIT MASK ‘__:__:__’ UNDER ’00:00:00′.
* box2
PERFORM BOX USING 7 14 ‘Workload’.
SKIP TO LINE 8. POSITION 2.
* line1
WRITE: /2 ‘CPU time’,
26 STAB-CPUTI LEFT-JUSTIFIED,
38 ‘Database calls’,
62 STAB-PHYCALLS LEFT-JUSTIFIED.
* line2
R = STAB-READDIRCNT + STAB-READSEQCNT + STAB-CHNGCNT.
WRITE: / ‘Elapsed time’ UNDER ‘CPU time’,
STAB-ELAPSEDTI UNDER STAB-CPUTI LEFT-JUSTIFIED,
‘Database requests’ UNDER ‘Database calls’,
R UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line3
WRITE: / ‘ Direct reads’ UNDER ‘Database calls’,
STAB-READDIRCNT UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line4
WRITE: / ‘Dialog steps’ UNDER ‘CPU time’,
STAB-COUNT UNDER STAB-CPUTI LEFT-JUSTIFIED,
‘Sequential reads’ UNDER ‘Database calls’,
STAB-READSEQCNT UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line5
R = STAB-RESPTI / STAB-COUNT.
WRITE: / ‘ AV. response time’ UNDER ‘CPU time’,
R UNDER STAB-CPUTI LEFT-JUSTIFIED,
‘Changes’ UNDER ‘Database calls’,
STAB-CHNGCNT UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line6
R = STAB-CPUTI / STAB-COUNT.
WRITE: / ‘ AV. CPU time’ UNDER ‘CPU time’,
R UNDER STAB-CPUTI LEFT-JUSTIFIED.
* line7
R = STAB-QUEUETI / STAB-COUNT.
K = STAB-READDIRTI + STAB-READSEQTI + STAB-CHNGTI.
K = K / ( STAB-READDIRCNT + STAB-READSEQCNT + STAB-CHNGCNT ).
WRITE: / ‘ AV. wait time’ UNDER ‘CPU time’,
R UNDER STAB-CPUTI LEFT-JUSTIFIED,
‘Time per DB request’ UNDER ‘Database calls’,
K UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line8
R = STAB-READDIRTI / STAB-READDIRCNT.
K = STAB-LOADGENTI / STAB-COUNT.
WRITE: / ‘ AV. load time’ UNDER ‘CPU time’,
K UNDER STAB-CPUTI LEFT-JUSTIFIED,
‘ Direct reads’ UNDER ‘Database calls’,
R UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line9
R = STAB-READSEQTI / STAB-READSEQCNT.
K = ( STAB-READDIRTI + STAB-READSEQTI + STAB-CHNGTI ) / STAB-COUNT.
WRITE: / ‘ AV. DB req. time’ UNDER ‘CPU time’,
K UNDER STAB-CPUTI LEFT-JUSTIFIED,
‘ Sequential reads’ UNDER ‘Database calls’,
R UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line10
R = ( STAB-BYTES / 1024 ) / STAB-COUNT.
K = STAB-CHNGTI / STAB-CHNGCNT.
IF TRUE_RSP = ‘X’.
WRITE: / ‘ AV. bytes req.’ UNDER ‘CPU time’ COLOR 6,
R UNDER STAB-CPUTI LEFT-JUSTIFIED COLOR 6,
‘ Changes and commis’ UNDER ‘Database calls’,
K UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
ELSE.
WRITE: / ‘ AV. bytes req.’ UNDER ‘CPU time’,
R UNDER STAB-CPUTI LEFT-JUSTIFIED,
‘ Changes and commis’ UNDER ‘Database calls’,
K UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
ENDIF.
* line11
WRITE: / .
* line12
R = STAB-ROLLINTI / STAB-ROLLINCNT.
WRITE: / ‘Roll-ins’ UNDER ‘CPU time’,
STAB-ROLLINCNT UNDER STAB-CPUTI LEFT-JUSTIFIED,
‘Av. time/roll in’ UNDER ‘Database calls’,
R UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line13
R = STAB-ROLLOUTTI / STAB-ROLLOUTCNT.
WRITE: / ‘Roll-outs’ UNDER ‘CPU time’,
STAB-ROLLOUTCNT UNDER STAB-CPUTI LEFT-JUSTIFIED,
‘Av. time/roll out’ UNDER ‘Database calls’,
R UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* box3
PERFORM BOX USING 23 6 ‘Task types’.
SKIP TO LINE 24. POSITION 2.
WRITE /2
‘Only dialog times! The following long running reports are excluded:’.
FORMAT INTENSIFIED ON.
LOOP AT ABPAP.
Y = 25 + ( ( SY-TABIX – 1 ) DIV ELEM_PER_ROW ).
X = ( ( SY-TABIX – 1 ) MOD ELEM_PER_ROW ) * 9 + 2.
SKIP TO LINE Y. POSITION X.
WRITE ABPAP-LOW.
ENDLOOP.
*
INITIALIZATION.
DATE = SY-DATUM.
SERVER = SY-HOST.
*
*

Display the true average response time, CPU time, db time …

REPORT ZTRUERSP NO STANDARD PAGE HEADING.
*********************************************************************
* Display the true average response time.
* The result of this report contains the same data the ST03-workload
* overview screen has with one major difference: the values belonging
* to a defined set of abaps usually running online and taking a very
* long time to complete are ignored during the calculation. These
* abap's response time is not a real dialog response time (even if 
* they run in dialog mode) and it can completely offset the actual
* response time of ST03 as well as all the other values (cpu time,
* sequential read ...)
*********************************************************************
TABLES: TRDIR.
DATA: R TYPE P DECIMALS 1, K TYPE P DECIMALS 1, I TYPE I, X TYPE I,
 Y TYPE I, ELEM_PER_ROW TYPE I VALUE 8, LASTREC(8), ELAPSTIM(8).
*
DATA: BEGIN OF LIST OCCURS 10.
 INCLUDE STRUCTURE MSXXLIST.
DATA: END OF LIST.
DATA: BEGIN OF SUMMARY OCCURS 50.
 INCLUDE STRUCTURE SAPWLSUMRY.
DATA: END OF SUMMARY.
DATA: BEGIN OF HI OCCURS 50.
 INCLUDE STRUCTURE SAPWLHITL.
DATA: END OF HI.
DATA: BEGIN OF STAB.
 INCLUDE STRUCTURE SAPWLSUMRY.
DATA: END OF STAB.
*
PARAMETERS: DATE LIKE SY-DATUM MODIF ID SC1 OBLIGATORY.
PARAMETERS: SERVER(8) MODIF ID SC1 OBLIGATORY LOWER CASE.
PARAMETERS: TRUE_RSP AS CHECKBOX.
SELECT-OPTIONS ABPAP FOR TRDIR-NAME NO INTERVALS.
*
PERFORM CALCULATE.
FORMAT INTENSIFIED OFF.
* box1
PERFORM BOX USING 1 4 'Instance'.
SKIP TO LINE 2. POSITION 2.
* line1
WRITE: /2 'SAP System',
 18 SY-SYSID,
 29 'First record',
 45 '00:00:00',
 56 'Date',
 72 DATE.
* line2
IF DATE = SY-DATUM.
 LASTREC = SY-UZEIT.
ELSE.
 LASTREC = '235959'.
ENDIF.
WRITE: / 'Server' UNDER 'SAP System',
 SY-HOST UNDER SY-SYSID,
 'Last record' UNDER 'First record',
 LASTREC USING EDIT MASK '__:__:__' UNDER '00:00:00'.
* line3
READ TABLE LIST INDEX 1.
TRANSLATE LIST-SERV USING 's a p d '.
CONDENSE LIST-SERV NO-GAPS.
WRITE: / 'Instance no.' UNDER 'SAP System',
 LIST-SERV UNDER SY-SYSID,
 'Elapsed time' UNDER 'First record',
 LASTREC USING EDIT MASK '__:__:__' UNDER '00:00:00'.
* box2
PERFORM BOX USING 7 14 'Workload'.
SKIP TO LINE 8. POSITION 2.
* line1
WRITE: /2 'CPU time',
 26 STAB-CPUTI LEFT-JUSTIFIED,
 38 'Database calls',
 62 STAB-PHYCALLS LEFT-JUSTIFIED.
* line2
R = STAB-READDIRCNT + STAB-READSEQCNT + STAB-CHNGCNT.
WRITE: / 'Elapsed time' UNDER 'CPU time',
 STAB-ELAPSEDTI UNDER STAB-CPUTI LEFT-JUSTIFIED,
 'Database requests' UNDER 'Database calls',
 R UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line3
WRITE: / ' Direct reads' UNDER 'Database calls',
 STAB-READDIRCNT UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line4
WRITE: / 'Dialog steps' UNDER 'CPU time',
 STAB-COUNT UNDER STAB-CPUTI LEFT-JUSTIFIED,
 'Sequential reads' UNDER 'Database calls',
 STAB-READSEQCNT UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line5
R = STAB-RESPTI / STAB-COUNT.
WRITE: / ' AV. response time' UNDER 'CPU time',
 R UNDER STAB-CPUTI LEFT-JUSTIFIED,
 'Changes' UNDER 'Database calls',
 STAB-CHNGCNT UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line6
R = STAB-CPUTI / STAB-COUNT.
WRITE: / ' AV. CPU time' UNDER 'CPU time',
 R UNDER STAB-CPUTI LEFT-JUSTIFIED.
* line7
R = STAB-QUEUETI / STAB-COUNT.
K = STAB-READDIRTI + STAB-READSEQTI + STAB-CHNGTI.
K = K / ( STAB-READDIRCNT + STAB-READSEQCNT + STAB-CHNGCNT ).
WRITE: / ' AV. wait time' UNDER 'CPU time',
 R UNDER STAB-CPUTI LEFT-JUSTIFIED,
 'Time per DB request' UNDER 'Database calls',
 K UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line8
R = STAB-READDIRTI / STAB-READDIRCNT.
K = STAB-LOADGENTI / STAB-COUNT.
WRITE: / ' AV. load time' UNDER 'CPU time',
 K UNDER STAB-CPUTI LEFT-JUSTIFIED,
 ' Direct reads' UNDER 'Database calls',
 R UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line9
R = STAB-READSEQTI / STAB-READSEQCNT.
K = ( STAB-READDIRTI + STAB-READSEQTI + STAB-CHNGTI ) / STAB-COUNT.
WRITE: / ' AV. DB req. time' UNDER 'CPU time',
 K UNDER STAB-CPUTI LEFT-JUSTIFIED,
 ' Sequential reads' UNDER 'Database calls',
 R UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line10
R = ( STAB-BYTES / 1024 ) / STAB-COUNT.
K = STAB-CHNGTI / STAB-CHNGCNT.
IF TRUE_RSP = 'X'.
 WRITE: / ' AV. bytes req.' UNDER 'CPU time' COLOR 6,
 R UNDER STAB-CPUTI LEFT-JUSTIFIED COLOR 6,
 ' Changes and commis' UNDER 'Database calls',
 K UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
ELSE.
 WRITE: / ' AV. bytes req.' UNDER 'CPU time',
 R UNDER STAB-CPUTI LEFT-JUSTIFIED,
 ' Changes and commis' UNDER 'Database calls',
 K UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
ENDIF.
* line11
WRITE: / .
* line12
R = STAB-ROLLINTI / STAB-ROLLINCNT.
WRITE: / 'Roll-ins' UNDER 'CPU time',
 STAB-ROLLINCNT UNDER STAB-CPUTI LEFT-JUSTIFIED,
 'Av. time/roll in' UNDER 'Database calls',
 R UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* line13
R = STAB-ROLLOUTTI / STAB-ROLLOUTCNT.
WRITE: / 'Roll-outs' UNDER 'CPU time',
 STAB-ROLLOUTCNT UNDER STAB-CPUTI LEFT-JUSTIFIED,
 'Av. time/roll out' UNDER 'Database calls',
 R UNDER STAB-PHYCALLS LEFT-JUSTIFIED.
* box3
PERFORM BOX USING 23 6 'Task types'.
SKIP TO LINE 24. POSITION 2.
WRITE /2
'Only dialog times! The following long running reports are excluded:'.
FORMAT INTENSIFIED ON.
LOOP AT ABPAP.
 Y = 25 + ( ( SY-TABIX - 1 ) DIV ELEM_PER_ROW ).
 X = ( ( SY-TABIX - 1 ) MOD ELEM_PER_ROW ) * 9 + 2.
 SKIP TO LINE Y. POSITION X.
 WRITE ABPAP-LOW.
ENDLOOP.
*
INITIALIZATION.
 DATE = SY-DATUM.
 SERVER = SY-HOST.
*
*---------------------------------------------------------------------*
* FORM BOX *
*---------------------------------------------------------------------*
FORM BOX USING VALUE(YPOS) HEIGHT TEXT.
*
 DATA: WIDTH TYPE I VALUE 84,
 R TYPE I, K TYPE I.
* Bottom horizontal line
 R = HEIGHT + YPOS.
 SKIP TO LINE R.
 DO WIDTH TIMES.
 WRITE '-' NO-GAP.
 ENDDO.
* Top horizontal line with text
 K = STRLEN( TEXT ).
 R = WIDTH - 2 - K.
 SKIP TO LINE YPOS.
 WRITE: '--'.
 WRITE AT 3(K) TEXT NO-GAP.
 DO R TIMES.
 WRITE: '-' NO-GAP.
 ENDDO.
* Vertical lines
 DO HEIGHT TIMES.
 SKIP TO LINE YPOS.
 WRITE: '|'. POSITION WIDTH. WRITE: '|'.
 YPOS = YPOS + 1.
 ENDDO.
ENDFORM.
*---------------------------------------------------------------------*
* FORM CALCULATE *
*---------------------------------------------------------------------*
FORM CALCULATE.
* Get the performance data
 CALL FUNCTION 'TH_SERVER_LIST'
 TABLES
 LIST = LIST.
 CALL FUNCTION 'SAPWL_GET_SUMMARY_STATISTIC'
 EXPORTING
 PERIODTYPE = 'D'
 HOSTID = SERVER
 STARTDATE = SY-DATUM
 TABLES
 SUMMARY = SUMMARY
 HITLIST_RESPTI = HI.
 LOOP AT SUMMARY.
 IF SUMMARY-TASKTYPE = 'DIALOG'.
 MOVE-CORRESPONDING SUMMARY TO STAB.
 ENDIF.
 ENDLOOP.
* Correction with the abaps
 IF TRUE_RSP = 'X'.
 LOOP AT HI.
 LOOP AT ABPAP.
 IF HI-REPORT = ABPAP-LOW.
 STAB-CHNGCNT = STAB-CHNGCNT - HI-UPDCNT -
 HI-DELCNT - HI-INSCNT.
 STAB-CHNGTI = STAB-CHNGTI - HI-UPDTI - HI-DELTI -
 HI-INSTI.
 STAB-COUNT = STAB-COUNT - 1.
 STAB-CPUTI = STAB-CPUTI - HI-CPUTI.
 STAB-LOADGENTI = STAB-LOADGENTI - HI-GENERATETI -
 HI-REPLOADTI - HI-CUALOADTI - HI-DYNPLOADTI.
 STAB-PHYCALLS = STAB-PHYCALLS - HI-PHYDELCNT -
 HI-PHYREADCNT - HI-PHYINSCNT - HI-PHYUPDCNT.
 STAB-QUEUETI = STAB-QUEUETI - HI-QUEUETI.
 STAB-READDIRCNT = STAB-READDIRCNT - HI-READDIRCNT.
 STAB-READDIRTI = STAB-READDIRTI - HI-READDIRTI.
 STAB-READSEQCNT = STAB-READSEQCNT - HI-READSEQCNT.
 STAB-READSEQTI = STAB-READSEQTI - HI-READSEQTI.
 STAB-RESPTI = STAB-RESPTI - HI-RESPTI.
 STAB-ROLLINCNT = STAB-ROLLINCNT - HI-ROLLINCNT.
 STAB-ROLLOUTCNT = STAB-ROLLOUTCNT - HI-ROLLOUTCNT.
 STAB-ROLLOUTTI = STAB-ROLLOUTTI - HI-ROLLOUTTI.
 ENDIF.
 ENDLOOP.
 ENDLOOP.
 ENDIF.
ENDFORM.

List of SAP FI Tables

By Rajan Iyengar, SAPGenie FICO Competency (20th January,2011)

AGKO     Cleared Accounts
ANAR     Asset Types
ANAT     Asset type text
ANEK     Document Header Asset Posting
ANEP     Asset Line Items
ANEV     Asset downpymt settlement
ANKT     Asset classes- Description
ANLA     Asset Master Record Segment
ANLB     Depreciation terms
ANLC     Asset Value Fields
ANLH     Main asset number
AT02T     Transaction Activity Category- Description
AT02A     Transaction Code for Menu TIMN
AT10     Transaction type
AT10T     Name of Transaction Type
BKDF     Document Header Supplement for Recurring Entry
BKORM     Accounting Correspondence Requests
BKPF     Accounting Document Header
BLPK     Document log header
BLPP     Document log item
BLPR     Document Log Index and Planned Order (Backflush)
BNKA     Bank master record
BP000     Business Partner Master (General Data)
BPBK     Doc.Header Controlling Obj.
BPEG     Line Item Total Values Controlling Obj.
BPEJ     Line Item Annual Values Controlling Obj.
BPEP     Line Item Period Values Controlling Obj.
BPGE     Totals Record for Total Value Controlling obj.
BPJA     Totals Record for Annual Total Controlling Obj.
BSAD     Accounting- Secondary Index for Customers (Cleared Items)
BSAK     Accounting- Secondary Index for Vendors (Cleared Items)
BSAS     Accounting- Secondary Index for G/L Accounts (Cleared Items)
BSEC     One-Time Account Data Document Segment
BSEG     Accounting Document Segment
BSID     Accounting- Secondary Index for Customers
BSIK     Accounting- Secondary Index for Vendors
BSIM     Secondary Index, Documents for Material
BSIS     Accounting- Secondary Index for G/L Accounts
CEPC     Profit Center Master Data Table
CEPCT     Texts for Profit Center Master Data
COBRA     Settlement Rule for Order Settlement
COBRB     Distribution Rules Settlement Rule Order Settlement
COKA     CO Object- Control Data for Cost Elements
COSP     CO Object- Cost Totals for External Postings
COSS     CO Object- Cost Totals for Internal Postings
CRCO     Assignment of Work Center to Cost Center
CSKA     Cost Elements (Data Dependent on Chart of Accounts)
CSKB     Cost Elements (Data Dependent on Controlling Area)
CSLA     Activity master
FEBEP     Electronic Bank Statement Line Items
FPLA     Billing Plan
FPLT     Billing Plan- Dates
GLPCT     EC-PCA- Totals Table
KNA1     General Data in Customer Master
KOMK     Pricing Communication Header
MAHNV     Management Records for the Dunning Program
REGUT     TemSe - Administration Data
SKA1     G/L Account Master (Chart of Accounts)
SKAT     G/L Account Master Record (Chart of Accounts- Description)
SKB1     G/L account master (company code)
T003T     Document Type Texts
T007S     Tax Code Names
T087J     Text
TAPRFT     Text tab. for investment profile
TKA01     Controlling Areas
TKA09     Basic Settings for Versions
TKVS     CO Versions
TZB0T     Flow types text table
TZPAT     Financial Assets Management product type texts
VBSEGS     Document Segment for G/L Accounts Document Parking
VTBFHA     Transaction
VTBFHAPO     Transaction Flow
VTBFHAZU     Transaction Activity
VTBFINKO     Transaction Condition
VTIDERI     Master Data Listed Options and Futures
VTIFHA     Underlying transaction
VTIFHAPO     Underlying transaction flows
VTIFHAZU     Underlying transaction status table
VTIOF     Options Additional Data
VWPANLA     Asset master for securities

Time is right for Disclosure Management

One of the trends highlighted by Gartner at their BI Summit in London earlier this week was that of automating end-to-end financial processes. They saw this as important to both improve  controls and data quality AND to make processes more efficient and drive down costs. The area they highlighted was ‘the last mile of finance’ where the focus is to deliver a timely, accurate and risk-free close process and where they suggest automation can result in costs savings of around 30%.

This is timely as in December SAP announced that they had acquired the disclosure management solutions of cundus AG. The acquired solutions will be marketed as part of Enterprise Performance Management, so expect to see a launch in the first quarter of 2011 with the offfering as part of a complete end-to-end financial close solution supporting both SAP and non-SAP environments.  The solutions involved are those previously know as cundus Financial Statement Factory and cundus Information Collector; solutions that are well proven and used by some of the globe’s leading companies – including SAP ourselves apparently. As cundus is an accredited SAP partner and developed the solutions for SAP customers,  expect excellent integration with core systems and quick time to value.  Another step to help our customers reach and sustain ‘financial excellence’.