Tuesday, May 6, 2008
Closing and Reporting (FI)
Purpose
Closing operations recur periodically and can be subdivided as follows in Financial Accounting:
Day-End Closing
Month-End Closing
Year-End Closing
You can use the closing operations component to support the preparation and carrying out of activities required for closing. For this purpose, the system provides various standard reports that you can use to generate evaluations and analyses directly from the posted account balance. The system supports the following closing operations:
Periodic accrual and deferral of expenditure and revenue
Creating the financial statements
Documenting the posting data
Integration
To carry out closing operations in General Ledger Accounting, you must first carry out the closing operations in the subledgers that you use. These include, for example:
Accounts Receivable and Accounts Payable
Materials Management
Asset Accounting
Payroll
Features
Under certain circumstances, you can produce simplified consolidated financial statements in Financial Accounting. However, to create standard, extensive consolidated financial statements, you must implement the Consolidation (SEM-BCS or EC-CS) components.
Purpose
The planning function in the General Ledger enables you to enter plan data based on your financial statement versions. You can use a budgeted financial statement to compare plan data with actual data.
Implementation Considerations
Before you can create plan data and use it for various reports, you have to set up planning. For more information, see Setting Up Planning.
Integration
You can use plan data from the following application components in the SAP system for your planning in the General Ledger:
Overhead Cost Controlling (CO-OM)
Profitability Analysis (CO-PA)
For more information, see Copying Plan Data.
Features
You enter the plan data per company code. Within a company code, you can plan for accounts and/or a combination of both accounts and business areas.
You can plan as follows for each company code:
Accounts only, without business areas
Accounts and business areas
Accounts and selected business areas
In the planning function, you navigate within one of the financial statement versions that you have already created. You use a financial statement version to define the format of the financial statements.
You can enter plan data for:
The entire financial statement version
Particular sections of the version
You can define different plan versions. You can use these for entering plan data for different financial statement versions, for example.
Planning is always made for a year, which means you cannot plan for more than one fiscal year.
You enter your plan data by entering plan totals and distributing them to the individual plan periods by means of a distribution key. You can also enter plan data for the individual plan periods, and have the system total these amounts.
You can enter the plan data either in local currency or in transaction currency.
When entering the plan data, you can also display the actual data of the previous year.
You can use report program RFBILA00 to create a budgeted financial statement. The budgeted financial statement contains the actual data from the financial statements and also the plan data, for comparison purposes. For more information, see Creating Budgeted Financial Statements.
For information on how to enter plan data, see Entering Plan Data.
Sunday, May 4, 2008
What is the? SAP FI Module
What is the?
SAP FI Module
- Introduction -
Introduction
The SAP FI Module has the capability of meeting all the accounting and financial needs of an organization. It is within this module that Financial Managers as well as other Managers within your business can review the financial position of the company in real time as compared to legacy systems which often times require overnight updates before financial statements can be generated and run for management review.
The real-time functionality of the SAP modules allows for better decision making and strategic planning. The FI (Financial Accounting) Module integrates with other SAP Modules such as MM (Materials Management), PP (Production Planning), SD(Sales and Distribution), PM (Plant Maintenance),and PS (Project Systems).
The FI Module also integrates with HR(Human Resources) which includes PM(Personnel Management), Time Management, Travel Management, Payroll.Document transactions occurring within the specific modules generate account postings via account determination tables.
The FI (Financial Accounting) Module components.
The FI Module comprises several sub-modules as follows:
- Accounts Receivables
- Accounts Payable
- Asset Accounting
- Bank Accounting
- Consolidation
- Funds Management
- General Ledger
- Special Purpose Ledger
- Travel Management
Accounts Receivables records all account postings generated as a result of Customer sales activity.
These postings are automatically updated in the General Ledger . It is within the Accounts
Receivables Module that you can monitor aging of the receivables and generate customer analysis. The Accounts Receivable Module also integrates with the General ledger, Sales and Distribution, and Cash Management Modules.
Accounts Payable records account postings generated as a result of Vendor purchasing activity. Automatic postings are generated in the General Ledger as well. Payment programs within SAP enables the payment of payable documents by check, EDI, or transfers.
Asset Accounting is utilized for managing your company’s Fixed Assets. SAP allows you to categorize assets and to set values for depreciation calculations in each asset class.
Bank Accounting allows for management of bank transactions in the system including cash management.
Consolidation enables the combining of financial statements for multiple entities within an organization. These statements provide an overview of the financial position of the company as a whole.
Funds Management allows management to set budgets for revenues and expenses within your company as well as track these to the area of responsibility.
General Ledger is fully integrated with the other SAP Modules. It is within the General Ledger that all accounting postings are recorded. These postings are displayed in real-time providing up-to-date visibility of the financial accounts.
Special Purpose Ledger is used to define ledgers for reporting purposes. Data can be gathered from internal and external applications.
Travel Management provides management of all travel activities including booking trips and handling of expenses associated with travel.
Primary configuration considerations:
Client, company and company code
Once a business has decided to use the SAP FI(Financial Accounting) Module, there are several Configurations prerequisite steps that must be completed.Determining the organizational structure is one of the first steps in setting up the business functions in SAP as well as your reporting requirements.
The Organizational structure is created by defining the organizational units consisting of the following:
- Client
- Company
- Company Code
- Business Area
A Client is the highest unit within an SAP system and contains Master records and Tables. Data entered at this level are valid for all company code data and organizational structures allowing for data consistency. User access and authorizations are assigned to each client created. Users must specify which client they are working in at the point of logon to the SAP system.
A Company is the unit to which your financial statements are created and can have one to many company codes assigned to it. A company is equivalent to your legal business organization. Consolidated financial statements are based on the company’s financial statements. Companies are defined in configuration and assigned to company codes. Each company code must use the same COA( Chart of Accounts) and Fiscal Year. Also note that local currency for the company can be different.
Company Codes are the smallest unit within your organizational structure and is used for internal and external reporting purposes. Company Codes are not optional within SAP and are required to be defined. Financial transactions are viewed at the company code level. Company Codes can be created for any business organization whether national or international. It is recommended that once a Company Code has been defined in Configuration with all the required settings then other company codes later created should be copied from the existing company code. You can then make changes as needed. This reduces repetitive input of information that does not change from company code to company code as well as eliminate the possibility of missed data input.
When defining company codes, the following key areas must be updated:
- Company Code Key- identifies the company code and consists of four alpha-numeric characters. Master data and business transactions are created by this key.
- Company Code Name- identifies the name of the business organization within your organizational structure.
- Address- identifies the street address, city, state, zip code for the company code created. This information is also used on correspondence and reports.
- Country- identifies the country to which your business is based. Country codes within SAP are based on ISO Standards.
- Country currency- identifies the local currency for the company code that you have defined.
- Language- identifies the language to be used for you company code and is also used for text in your documents. SAP unlike other applications, offers over thirty languages including EN( English) , ES (Spanish), FR (French), DE (German), EL (Greek), IT(Italian), AR( Arabic), ZH (Chinese) , SV (Swedish) , and JA (Japanese) to name a few.
More FI configuration considerations:
Business Area, COA, GL, Fiscal year and Currencies
Business Area is optional and is equivalent to a specific area of responsibility within your company or business segment. BA (Business Area) also allows for internal and external reporting.
Another configuration requirement for set-up in SAP are the Basic settings consisting of the following:
- Chart of Accounts(COA)
- Fiscal Year Variants.
- Currencies
The COA(Chart of Accounts) lists all General Ledger accounts that are used by the organization. It is assigned in configuration to each company code and allows for daily General Ledger postings.
The General Ledger accounts are made up of such data as account number, company code, a description of the account , classification of whether the account is a P & L Statement Account or a Balance Sheet Account.
- Control data of the GL Account is where currency is specified, Tax category (posting without tax allowed) , marking the account as a reconciliation account ( e.g. Customer, Asset, Vendors, Accounts Receivable) or not.
- Marking the G/L Account as a “reconciliation” account allows for postings to an Asset Account ( for example) as well as automatic update to the G/L Account.
- Configuration prevents direct postings to reconciliation accounts thereby assisting in maintaining integrity of the data.
- This allows reconciliation between the sub-ledger and general ledger to always be guaranteed.
- Within the General Ledger control data , you can also designate whether line item display is possible in the account. The system then stores an entry per line in an index table which links back to the account. (Display of line item details are then available for reporting purposes ,etc.)
- Open Item Indicators can be set on the G/L Account allowing for better management of open items. Examples include: Bank Clearing Accounts, GR/IR Clearing Accounts, Payroll, etc.
Fiscal Year configuration is a must and can be defined to meet your company’s reporting periods whether Fiscal (any period combination that is not calendar) or Calendar( Jan-Dec).
- Posting Periods are defined and assigned to the Fiscal Year.
- Within the periods you specify start dates and finished dates.
- SAP allows for 12 posting periods along with specially defined periods that can be used for year-end financial closing.
Currencies are another basic configuration setting requirement which defines your company’s legal means of payment by country.
- It is recommended that all Currency set-ups in SAP follow the ISO Standards.
- The ISO Standards ensure Global conformity across businesses worldwide utilizing SAP.
What are some of the integration points of the FI module?
SAP is marketed as a fully integrated system, therefore knowing some of the integration points enables the Users to better understand the Modules.
· Organization units are not only defined in FI(Financial Accounting) but also in other SAP Modules. The SD( Sales & Distribution) Module requires the set-up of Sales Organizations, Distribution Channels and Divisions ; Purchasing requires purchasing organizations, plants, and storage locations; and CO (Controlling) requires a Controlling area to be defined.
· To transfer data between FI(Financial Accounting) and CO (controlling) as well as other modules, a Company Code must be assigned to each of the Modules.
· Business Areas must be entered when generating business transactions if you would like visibility of those transactions impacting a certain BA(Business Area). You can also update your Master Records to include BA(Business Area) for example Cost Center.
· Document postings are automatically posted in the year and periods that you created in the Fiscal Year variant set-ups based on the month, start and end dates to which postings are allowed within a given period as defined.
· There are several integration points in SAP, the above lists a few .
We hope you have enjoyed reading this tutorial. If you are interested in learning more, check out the online SAP training courses offered by Michael Management Corporation
Accounts Receivable |
Accounts Payable |
FI Basic Reporting |
FI Advanced Reporting |
Asset Accounting |
Investment Management |
Project System |
... and many more covering all parts of SAP |
Saturday, April 26, 2008
SAP Netweaver
In the present era, where companies are struggling to unite various heterogeneous environments in their organizations and maintain a lower Total Cost of Ownership (TCO) NetWeaver comes as a solution to all their problems. SAP NetWeaver is the latest advancement in the mySAP Technology, which was developed as an Artificial Intelligence (AI) shell that accepts standard comments, literally as they are spoken, by domain experts.
Another unique feature of NetWeaver™ that makes it stand out amongst other software technologies is its modularity. The knowledge engineer can more easily create "digestible chunks" of modules or sub-dependency networks, which help to keep the overarching dependency network from becoming potentially incomprehensible because of apparent complexity. This text is aimed at explaining SAP NetWeaver architecture and its interoperability with Microsoft.NET and IBM WebSphere. In addition it aims at bringing out all the advantages that are associated with SAP NetWeaver.
Net Weaver in simple words is an application and Integration platform in which Web Services play a major role and which is open for Non-SAP applications and platform. It is used by organizations to improve productivity and enhance efficiency by making all the resources that are available in an enterprise to work collectively. The SAP customers to bring heterogeneous environments at one platform use SAP NetWeaver. In addition, it enables customers to use the already existing systems without putting in much investment. Further in the near future, the various corporate sectors and Organizations have to take a decision for some common platform; could be Microsoft .NET, IBM Websphere or SAP NetWeaver. Irrespective of the choice that they make, SAP NetWeaver is the one that integrates with all the three technologies.
Read This Nugget
As it’s name suggests, Enterprise Core will contain the inward, enterprise processes that make the enterprise work. The outward, collaborative processes will not be included in Enterprise Core. They will be included in what is called Enterprise Extensions.
SAP NetWeaver attains the process of integration by integrating all the available heterogeneous resources of the existing system and unifying them into a homogeneous form. This integrated information forms the basis of total, comprehendible, focused solution as desired in an enterprise
2.0 NetWeaver Object Model and Enterprises Architecture
This section focuses on overview of the object model of NetWeaver. This basic knowledge facilitates the organizations in constructing an apprehensible knowledge base. The various components that are present in NetWeaver Object Model are Data Links, Dependency Networks, Nodes and in some cases, evaluation groups. Each of these components and their function in the NetWeaver Object Model is described below:
Data Links: These objects of the NetWeaver function to request data about the real-world objects. They can also be defined as the objects that have one-to-one relation with the real-life objects and can be logically and mathematically manipulated. Thus, making the knowledge representation in NetWeaver simple as well as insightful. Moreover, these objects are reusable and can be referred as and when required.
Dependency Networks: The dependency networks in NetWeaver play the central role in formulating the representation of the problem. These dependency networks are used to interconnect different objects in the object model. Therefore, they are considered to be the most important factor in the object model of NetWeaver. Using the "New Network" that is present in the network window can create a new dependency network. Also, new dependency networks can be added in the object model in the later stages without creating any interference with the already existing knowledge base.
Nodes: Nodes function to form the relation between data links and dependency networks. Nodes are classified into logical nodes and functional nodes. The logical nodes define the dependencies of the network on its antecedents and the functional nodes are used to construct the mathematical relation in the data links.
Evaluation Group: An evaluation group is a user-defined collection of networks. An evaluation group specifies a collection of networks that are conceptually relevant to one another and that the knowledge base designer wants to see evaluated as a set.
3.0 Interoperability of SAP NetWeaver with Microsoft .NET
SAP along with Microsoft is creating a development kit, which enables to create Iviews inside Microsoft Visual Studio.
The Iviews help in integrating information and functions from a wide range of sources in an enterprise portal. It helps in developing portal content on your preferred platform. It also helps in accessing and gathering Information consistently. This is achieved by integration of SAP Knowledge Management and data management tools such as Microsoft Content Management Server. This integration centralizes the Knowledge base and helps in coordination of processes, which cover various Technologies e.g., SAP NetWeaver supports an environment in which SAP Exchange Infrastructure and Microsoft BizTalk Server can exchange information.
Additionally, SAP Web Application Server, which is a component of SAP NetWeaver, supports platform independent Web services and the same Web services as standards as Microsoft, including Extensible Markup Language (XML), Simple Object Access Protocol (SOAP), Web Services Description Language (WSDL), and Universal Description, Discovery, and Integration (UDDI). For Microsoft .NET, SAP’s .NET connector provides a highly scalable and reliable communication infrastructure, as well as a Microsoft Visual Studio .NET Add-In to simplify development.
4.0 Interoperability of SAP NetWeaver with IBM WebSphere
Interoperability of SAP NetWeaver with IBM WebSphere takes at People, Information and process level. This interoperability helps in developing portal content on your preferred platform thus saving investments. SAP NetWeaver supports groupware and collaboration products such as Lotus. It helps in accessing and gathering Information consistently. This is done by integration of SAP Knowledge Management and data management tools such as IBM Content Manager. It also centralizes the Knowledge base and helps in coordination of processes, which cover various Technologies e.g., SAP NetWeaver supports an environment in which SAP Exchange Infrastructure and IBM WebSphere Business Integration can exchange information. As mentioned earlier, SAP Web Application Server, a component of SAP NetWeaver, supports platform-independent Web services and other primary technology standards including J2EE Connector Architecture (JCA) and Java Message Service (JMS). SAP Java Connector is a toolkit that allows a Java application to communicate with any SAP system. It combines an easy-to-use API with extraordinary flexibility and performance. The package supports both, Java-to-SAP, as well as SAP-to-Java calls. Customers using IBM WebSphere can easily access existing business objects and integrate their applications with any SAP application.
5.0 Creating an ASP .NET Web Application Using the SAP .NET Connector
SAP.NET Connector along with Microsoft.NET can be used to create Web Applications. The following example illustrates creating .NET project using Microsoft Visual Studio. NET. Here, a client application reads and displays customer data from an SAP System using a search value and then displays it in a data grid.
The example uses the function module RFC_CUSTOMER_GET, which requires that customer data exist in the target SAP System, for example, in IDES. Although it is possible to rename all development objects and generated proxy classes, default names are used in this example. This example is provided as part of the connector sample code (DNCWebApp).
Procedure of Creating an ASP .NET Web Application Using the SAP .NET Connector:
1. Open Microsoft Visual Studio .NET.
2. Create a new C# Web form project:Choose New. New Project. Visual C# Projects. ASP .NET Web Application.
You can also create a project in any other common programming language for .NET, for example, in Visual Basic .NET. In this case, you must add the SAP .NET proxy classes as a separate project in the Microsoft Visual Studio .NET solution.
3. Rename the form Webform1.aspx to Default.aspx.
4. Add Web controls to your Web form.
5. Add proxy classes to connect the Web applications to your SAP server.
a. In the Solution Explorer, right-click on your project.
b. Choose Add. Add new item.
c. Select Web Project Items.
SAP Connector Class and choose Open.
The SAP .NET Connector Wizard opens.
d. Decide from where you want to generate the proxy classes.
Proxies can be created from
- Web Services Description Language (WSDL) files that originate in an SAP interface repository (IFR)
- An SAP server
- Standard WSDL files
e. Select the client proxy object type and select beautify names option.
f. Select the Remote Function Modules (RFM) you want to use in your proxy object.
You can use search filters to look for the Remote Function Modules. In the example, enter the search argument RFC_CUST* in Name-Filter and select RFC_CUSTOMER_GET.
g. Add the modules to your proxy object and choose NEXT.
The proxy classes for the referenced table and structure types are automatically created and added to the project.
6. Build the solution with Build. Build Solution.
7. Create an SAP Login page to support user name and password authentication
a. In the Solution Explorer, right-click on your project.
b. Choose Add. Add new item.
c. Select Web Project Items. SAP Login Form
Leave the name as SAPLogin1.aspx.
8. Set the system connection information in the destination object of the SAPLogin1.aspx page:
a. In the Solution Explorer window find the item SAPLogin1.aspx and double-click on it to bring it up in the designer.
b. Look for the component destination1 on the bottom of the form.
c. Click on the destination component and set the properties for connecting to your SAP system (for example AppServerHost and System Number). The other properties like client, Password and username will be set from the login page.
9. Data bind the data grid to BRFCKNA1Table:
BRFCKNA1Table is the parameter of RFC_CUSTOMER_GET that contains the list of customers.
a. Select SAP Table Wizard from the SAP proxy toolbox and Drag Drop it to your working area. In the dialog box, select BRFCKNA1Table.
b. Select the data grid, and under Properties change Data Source to BRFCKNA1Table using the drop down list.
c. Customize the list of columns displayed on the data grid by modifying the Columns collection property.
10. On the default.aspx page, double-click the Button control you added earlier to create an event handler for the control.
11. Add the connect code to your project:Select Connect code from the SAP proxy toolbox.
Drag Drop it in the source code of your event handler. A fragment of sample code is then inserted. It connects to the SAP server using the authorization settings from the Proxy Wizard. Normally, you must change these settings.
The syntax for the application will be
private void btnSearch_Click(object sender, System.EventArgs e)
{
// Declare parameters here
SAPProxy1 proxy = new SAPProxy1();
try
{
proxy.Connection =
SAP.Connector.SAPLoginProvider.GetSAPConnection(this);
// Call methods here
proxy.Rfc_Customer_Get("", txtCust.Text, ref brfcknA1Table1);
// Now update Data Bindings. On WinForms this will be automatic, on
// WebForms call the following line
this.DataBind();
}
catch(Exception ex)
{
// If SAPLoginProvider.GetSAPConnection(this) cannot get a connection,
// we might get an error.
// Normally this can be ignored as it will automatically will force a
// relogon.
}
}
12. Build and run the application.
The browser window opens and you are redirected to your SAPLogin1.aspx login page.
13. Enter connection data (for example user, password and client).
If you select SAVE this login information will be stored as an encrypted cookie on your computer and will provide an alternative single sign-on capability the next time you wish to access the site. If you do not select SAVE, the login information will still be saved in the ASP .NET session state but will be lost once the browser is closed.
14. Enter a search argument, for example A* in the Textbox field and choose Search. Thus we create an ASP.NET Application using Visual Studio .NET using Proxy classes to connect to the server and Binding the DATA GRID. Your application connects to the SAP System and displays the requested data in the Data Grid.
6.0 Using the SAP Java Connector
SAP’s new Java middleware, the SAP Java Connector (JCO) allows customers and partners to easily build SAP-enabled components in Java. JCO supports both inbound (Java calls ABAP) and outbound (ABAP calls Java) calls in desktop and server applications.
In this Sample Program we connect to SAP and call two BAPIs.
Import statements: Any program using JCO should contain the following import statement:
import com.sap.mw.jco.*;
Otherwise, you have to fully qualify each class and interface which is very inconvenient.
Connecting to SAP
JCO.Client mConnection;
A connection (or session) with SAP is handled by class JCO.Client
try
{ mConnection =
JCO.createClient("400", //
SAP client "c3026902", // userid
"********", // password
"EN", // language
"iwdf5020", // host name
"00"); // system number
mConnection.connect();
}
catch (Exception ex) {
ex.printStackTrace();
System.exit(1);
}
"A Client object is created via a call to createClient(). You can use a specific application server (as in the above code) or a server group (load balancing)." REFER the JCO Javadoc for the overloaded createClient() method for the latter possibility.
"The Client class's connect () method tries to log on to SAP. If that fails for any reason, an exception is thrown. If the call succeeds, we can now stay connected for as long as we like. When we are done, we can call disconnect () to explicitly log off."
SAP ABAP Performance Tuning
In this world of SAP programming, ABAP is the universal language. In most of the projects, the focus is on getting a team of ABAP programmers as soon as possible, handing over the technical specifications to them and asking them to churn out the ABAP programs within the “given deadlines”.
Often due to this pressure of schedules and deliveries, the main focus of making a efficient program takes a back seat. An efficient ABAP program is one which delivers the required output to the user in a finite time as per the complexity of the program, rather than hearing the comment “I put the program to run, have my lunch and come back to check the results”.
Leaving aside the hyperbole, a performance optimized ABAP program saves the time of the end user, thus increasing the productivity of the user, and in turn keeping the user and the management happy.
This tutorial focuses on presenting various performance tuning tips and tricks to make the ABAP programs efficient in doing their work. This tutorial also assumes that the reader is well versed in all the concepts and syntax of ABAP programming.
Use of selection criteria
Instead of selecting all the data and doing the processing during the selection, it is advisable to restrict the data to the selection criteria itself, rather than filtering it out using the ABAP code.
Not recommended
Select * from zflight.
Check : zflight-airln = ‘LF’ and zflight-fligh = ‘BW222’.
Endselect.
Recommended
Select * from zflight where airln = ‘LF’ and fligh = ‘222’.
Endselect.
One more point to be noted here is of the select *. Often this is a lazy coding practice. When a programmer gives select * even if one or two fields are to be selected, this can significantly slow the program and put unnecessary load on the entire system. When the application server sends this request to the database server, and the database server has to pass on the entire structure for each row back to the application server. This consumes both CPU and networking resources, especially for large structures.
Thus it is advisable to select only those fields that are needed, so that the database server passes only a small amount of data back.
Also it is advisable to avoid selecting the data fields into local variables as this also puts unnecessary load on the server. Instead attempt must be made to select the fields into an internal table.
Use of aggregate functions
Use the already provided aggregate functions, instead of finding out the minimum/maximum values using ABAP code.
Not recommended
Maxnu = 0.
Select * from zflight where airln = ‘LF’ and cntry = ‘IN’.
Check zflight-fligh > maxnu.
Maxnu = zflight-fligh.
Endselect.
Recommended
Select max( fligh ) from zflight into maxnu where airln = ‘LF’ and cntry = ‘IN’.
The other aggregate functions that can be used are min (to find the minimum value), avg (to find the average of a Data interval), sum (to add up a data interval) and count (counting the lines in a data selection).
Use of Views instead of base tables
Many times ABAP programmers deal with base tables and nested selects. Instead it is always advisable to see whether there is any view provided by SAP on those base tables, so that the data can be filtered out directly, rather than specially coding for it.
Not recommended
Select * from zcntry where cntry like ‘IN%’.
Select single * from zflight where cntry = zcntry-cntry and airln = ‘LF’.
Endselect.
Recommended
Select * from zcnfl where cntry like ‘IN%’ and airln = ‘LF’.
Endselect.
Use of the into table clause of select statement
Instead of appending one record at a time into an internal table, it is advisable to select all the records in a single shot.
Not recommended
Refresh: int_fligh.
Select * from zflight into int_fligh.
Append int_fligh. Clear int_fligh.
Endselect.
Recommended
Refresh: int_fligh.
Select * from zflight into table int_fligh.
Modifying a group of lines of an internal table
Use the variations of the modify command to speed up this kind of processing.
Not recommended
Loop at int_fligh.
If int_fligh-flag is initial.
Int_fligh-flag = ‘X’.
Endif.
Modify int_fligh.
Endloop.
Recommended
Int_fligh-flag = ‘X’.
Modify int_fligh transporting flag where flag is initial.
When a programmer uses the read command, the table is sequentially searched. This slows down the processing. Instead of this, use the binary search addition. The binary search algorithm helps faster search of a value in an internal table. It is advisable to sort the internal table before doing a binary search. Binary search repeatedly divides the search interval in half. If the value to be searched is less than the item in the middle of the interval, the search is narrowed to the lower half, otherwise the search is narrowed to the upper half.
Not Recommended
Read table int_fligh with key airln = ‘LF’.
Recommended
Read table int_fligh with key airln = ‘LF’ binary search.
Instead of using the normal loop-endloop approach for this kind of programming, use the variation of the append command. Care should be taken that the definition of both the internal tables should be identical.
Not Recommended
Loop at int_fligh1.
Append int_fligh1 to int_fligh2.
Endloop.
Use of buffered tables is recommended to improve the performance considerably. The buffer is bypassed while using the following statements
Select distinct
Select … for update
Order by, group by, having clause
Joins
Use the Bypass buffer addition to the select clause in order to explicitly bypass the buffer while selecting the data.
Recommended
Append lines of int_fligh1 to int_fligh2.
Outer join can be created using this addition to the where clause in a select statement. It speeds up the performance tremendously, but the cons of using this variation are listed below
Duplicates are automatically removed from the resulting data set. Hence care should be taken that the unique key of the detail line items should be given in the select statement.
If the table on which the For All Entries IN clause is based is empty, all rows are selected into the destination table. Hence it is advisable to check before-hand that the first table is not empty.
If the table on which the For All Entries IN clause is based is very large, the performance will go down instead of improving. Hence attempt should be made to keep the table size to a moderate level.
Not Recommended
Loop at int_cntry.
Select single * from zfligh into int_fligh
where cntry = int_cntry-cntry.
Append int_fligh.
Endloop.
Proper structure of Where Clause
When a base table has multiple indices, the where clause should be in the order of the index, either a primary or a secondary index.
To choose an index, the optimizer checks the field names specified in the where clause and then uses an index that has the same order of the fields. One more tip is that if a table begins with MANDT, while an index does not, there is a high possibility that the optimizer might not use that index.
In certain scenarios, it is advisable to check whether a new index can speed up the performance of a program. This will come handy in programs that access data from the finance tables.
Recommended
Select * from zfligh appending table int_fligh
For all entries in int_cntry
Where cntry = int_cntry-cntry.
Instead of using the move-corresponding clause it is advisable to use the move statement instead. Attempt should be made to move entire internal table headers in a single shot, rather than moving the fields one by one.
When multiple SAP tables are logically joined, it is always advisable to use inner join to read the data from them. This certainly reduces the load on the network.
Let us take an example of 2 tables, zairln and zflight. The table zairln has the field airln, which is the airline code and the field lnnam, which is the name of the airline. The table zflight has the field airln, the airline code and other fields which hold the details of the flights that an airline operates.
Since these 2 tables a re logically joined by the airln field, it is advisable to use the inner join.
Select a~airln a~lnnam b~fligh b~cntry into table int_airdet
From zairln as a inner join zflight as b on a~airln = b~airln.
In order to restrict the data as per the selection criteria, a where clause can be added to the above inner join.
Use of ABAP Sort instead of Order By
The order by clause is executed on the database server, while the sort statement is executed on the application server. Thus instead of giving the order by in the select clause statement, it is better to collect the records in an internal table and then use the sort command to sort the resulting data set.
Tools provided for Performance Analysis
Following are the different tools provided by SAP for performance analysis of an ABAP object
1.Run time analysis transaction SE30
This transaction gives all the analysis of an ABAP program with respect to the database and the non-database processing.
2.SQL Trace transaction ST05
The trace list has many lines that are not related to the SELECT statement in the ABAP program. This is because the execution of any ABAP program requires additional administrative SQL calls. To restrict the list output, use the filter introducing the trace list.
The trace list contains different SQL statements simultaneously related to the one SELECT statement in the ABAP program. This is because the R/3 Database Interface - a sophisticated component of the R/3 Application Server - maps every Open SQL statement to one or a series of physical database calls and brings it to execution. This mapping, crucial to R/3s performance, depends on the particular call and database system. For example, the SELECT-ENDSELECT loop on the SPFLI table in our test program is mapped to a sequence PREPARE-OPEN-FETCH of physical calls in an Oracle environment.
The WHERE clause in the trace list's SQL statement is different from the WHERE clause in the ABAP statement. This is because in an R/3 system, a client is a self-contained unit with separate master records and its own set of table data (in commercial, organizational, and technical terms). With ABAP, every Open SQL statement automatically executes within the correct client environment. For this reason, a condition with the actual client code is added to every WHERE clause if a client field is a component of the searched table.
To see a statement's execution plan, just position the cursor on the PREPARE statement and choose Explain SQL. A detailed explanation of the execution plan depends on the database system in use.
Friday, April 25, 2008
What is the SAP CO Module
Introduction
The SAP CO (Controlling) Module provides supporting information to Management for the purpose of planning, reporting, as well as monitoring the operations of their business. Management decision-making can be achieved with the level of information provided by this module.
Some of the components of the CO(Controlling) Module are as follows:
· Cost Element Accounting
· Cost Center Accounting
· Internal Orders
· Activity-Based Costing ( ABC)
· Product Cost Controlling
· Profitability Analysis
· Profit Center Accounting
The Cost Element Accounting component provides information which includes the costs and revenue for an organization. These postings are automatically updated from FI (Financial Accounting) to CO (Controlling). The cost elements are the basis for cost accounting and enables the User the ability to display costs for each of the accounts that have been assigned to the cost element. Examples of accounts that can be assigned are Cost Centers, Internal Orders, WBS(work breakdown structures).
Cost Center Accounting provides information on the costs incurred by your business. Within SAP, you have the ability to assign Cost Centers to departments and /or Managers responsible for certain areas of the business as well as functional areas within your organization. Cost Centers can be created for such functional areas as Marketing, Purchasing, Human Resources, Finance, Facilities, Information Systems, Administrative Support, Legal, Shipping/Receiving, or even Quality.
Some of the benefits of Cost Center Accounting : (1) Managers can set Budget /Cost Center targets; (2) Cost Center visibility of functional departments/areas of your business; (3) Planning ; (4) Availability of Cost allocation methods; and (5) Assessments/Distribution of costs to other cost objects.
Internal Orders provide a means of tracking costs of a specific job , service, or task. Internal Orders are used as a method to collect those costs and business transactions related to the task. This level of monitoring can be very detailed but allows management the ability to review Internal Order activity for better-decision making purposes.
Activity-Based Costing allows a better definition of the source of costs to the process driving the cost. Activity-Based Costing enhances Cost Center Accounting in that it allows for a process-oriented and cross-functional view of your cost centers. It can also be used with Product Costing and Profitability Analysis.
Product Cost Controlling allows management the ability to analyze their product costs and to make decisions on the optimal price(s) to market their products. It is within this module of CO (Controlling) that planned, actual and target values are analyzed. Sub-components of the module are:
· Product Cost Planning which includes Material Costing( Cost estimates with Quantity structure, Cost estimates without quantity structure, Master data for Mixed Cost Estimates, Production lot Cost Estimates) , Price Updates, and Reference and Simulation Costing.
· Cost Object Controlling includes Product Cost by Period, Product Cost by Order, Product Costs by Sales Orders, Intangible Goods and Services, and CRM Service Processes.
· Actual Costing/Material Ledger includes Periodic Material valuation, Actual Costing, and Price Changes.
Profitability Analysis allows Management the ability to review information with respect to the company’s profit or contribution margin by business segment. Profitability Analysis can be obtained by the following methods:
· Account-Based Analysis which uses an account-based valuation approach. In this analysis, cost and revenue element accounts are used. These accounts can be reconciled with FI(Financial Accounting).
· Cost-Based Analysis uses a costing based valuation approach as defined by the User.
Profit Center Accounting provides visibility of an organization’s profit and losses by profit center. The methods which can be utilized for EC-PCA (Profit Center Accounting) are period accounting or by the cost-of-sales approach. Profit Centers can be set-up to identify product lines, divisions, geographical regions, offices, production sites or by functions. Profit Centers are used for Internal Control purposes enabling management the ability to review areas of responsibility within their organization. The difference between a Cost Center and a Profit Center is that the Cost Center represents individual costs incurred during a given period and Profit Centers contain the balances of costs and revenues.Primary configuration considerations
There are several configuration steps that must be considered when implementing the CO (Controlling) Module. Creating the Controlling area is one of the first steps in the CO (Controlling) configuration process. SAP has provided standard controlling areas and company codes which can be utilized as a basis for creating your company’s Controlling Area. The SAP Standard for Controlling Area is “0001” and for company code is “0001”.
It is recommended that these be used as a basis to create the Controlling Area or Company Code that you would like to define . Certain defaults setting such as number ranges have already been set-up in the standard SAP settings, thereby eliminating the need to redo this configuration requirement. Through the SAP Configuration process, you can create a copy of the Standard Controlling Area and Company Code, then update the other fields as needed including the four character alpha numeric field which identifies these areas. (You may want to change the controlling area from “0001” to “A001” and the Company Code from “0001” to “ AA01” as an example.)
Keep in mind that Company Codes are assigned to Controlling Areas and affect the COA (Chart of Accounts), the Fiscal Year Variants, and Currency set-ups. Cost Center hierarchy and Reconciliation ledger settings are also include in the Controlling Area set-up.
The Control Indicator activates and deactivates certain functions in the Controlling Area. The Controlling Area can also be used for cross-company code business transactions. To enable this function the Controlling Area must be assigned to all company codes used for cross-company code accounting.
Number ranges
Configuration in the CO (Controlling) Modules requires maintenance of number ranges for documents generated from business transactions. A systems’ generated document number is assigned for every CO (Controlling) posting. These numbers are sequential and are required to be assigned to number range groups. The number range groups consists of two number intervals, one for internal document numbering and one for external document numbering. The SAP R/3 system keeps track of those document numbers that are externally generated and fed to SAP via batches and User manual input, otherwise, the system generates the next internally assigned document number for the transaction posted.
As previously stated when defining the Controlling Area, you have the ability to copy the Standard SAP Controlling Area “0001” which already has the number ranges defined eliminating the need for maintenance of number ranges. Keep in mind that you also have the flexibility to change number ranges and number range groups to meet your business needs. As a caution, never overlap number intervals in a group . For example, if you decide to assign number range interval 10000000 thru 199999999 to the number range group “05”, you can not assign it to number range group “06”. Number ranges should never be transported for data consistency purposes, therefore create these manually in each system.
Within the CO (Controlling) Module, you can configure Plan Versions. Maintaining Plan Versions allows for set-up of planning assumptions and determination of plan rates for allocation and plan activity purposes. The SAP Standard Version “000” is created for a five year fiscal year plan. It is recommended that the standard version be utilized for your plan/actual comparisons if you do not require multiple plan versions. SAP always allows the flexibility to create additional Plan versions by coping the Standard Version “000” and changing certain fields as required. There is also the option of defining and creating a totally new Plan Version.
Other configuration
After the Controlling Area, Number Ranges, and Plan Versions have been defined and maintained, then settings for the other components in the CO(Controlling) Module should be maintained. (Cost Center Accounting, Cost Element Accounting, Activity-Based Costing, Internal Orders, Product Cost Controlling, Profitability Analysis, and Profit Center Accounting. )
The Account Assignment Logic allows configuration for Validation and Substitution Rules whose purpose is to check certain input values as defined by the User.
More specifically, Validations allow for business transactions to either post or not post documents based on the criteria defined in the validation rule. Certain input conditions are checked as defined by the User and if those conditions are met then the document(s) are updated and/or posted in the system. If the condition is not met, then an error message is generated to the User with a brief explanation of the error. These messages are defined in Configuration and can be identified as a warning, error, or a note. You also have the option to deactivate messages.
Substitutions on the other hand, checks input values and replaces the values with another value if the criteria as defined is met.
Maintaining Currency and Valuation Profiles allows for the definition of valuation approaches to be used in accounting components . These valuation profiles are checked in the system when activated in the Controlling Area. Certain rules apply if there is a need to maintain the currency and valuation profiles: (1) Company Code Currency must be assigned to a legal valuation approach, (2) Valuation approaches must also be maintain in the material ledger, and (3) Profit Center valuations can only be maintained if you are using Profit Center Accounting.
The CO(Controlling)Module has multiple configuration steps that must be followed for complete implementation of this module. Each sub-component of the CO (Controlling) Module has it’s level of configuration requirements. Once you have defined your business needs in the Controlling Area, a determination can be made as to what should be configured and what you do not need.
We hope you have enjoyed reading this tutorial. If you are interested in learning more, check out the online SAP training courses offered by Michael Management Corporation
Internal Order Accounting |
Profit Centre Accounting |
Revenue Accounting |
Asset Accounting |
Investment Management |
Project System |
... and many more covering all parts of SAP |
Thursday, April 24, 2008
A Warm Welcome Friends. You are going to love this book and we have taken great efforts to ensure that we present the configuration in a very simple yet detailed manner.
Product costing module of SAP has eased out all hassles of costing a manufactured product. Product costing module uses data for valuation from the Production planning (PP) module.
The Product Planning Module maintains the Bill of Material and
Routing or the Master Recipe. Product Cost primarily consists of Material Cost, Labor cost and Overhead cost
To arrive at the material cost, SAP picks up the quantity of raw and packing material required from the Bill of Material. It then valuates this quantity with the various prices available in the material master in accordance with the strategy specified in customizing.
In a like manner it does the same to arrive at the labor cost. The time required for each operation is specified in the routing or recipe. This quantity is mult
iplied by the activity prices maintained in the cost center accounting module. We will cover all this and more in this document
We will also cover product cost planning, cost object controlling by period (repetitive manufacturing), cost object controlling by order, cost object controlling by sales order and configuration settings for co-product costing.
We had configured controlling area 9100, in the document on cost center accounting. We will now do the product-costing configuration in controlling area 9100.
A) Product Cost Planning
For doing the configuration we will use the following path on the SAP application screen:-
SAP Menu à Tools à AcceleratedSAP à Customizing à SPRO - Edit Project Ã
1. Basic Settings for Material Costing
The company A Ltd for its plant 9100 requires the followin
g overheads:-
1) Material overhead
2) Production overhead
It should be calculated as follows:-
On materials 5 % material overhead should be calculated and on Wages 4 % Production overhead should be calculated.
Let us go about configuring the costing sheet from steps 1.a to 1.g .
We will now see how to create a costing sheet for the purp
ose of overhead calculation.
1.1 Maintain Overhead Cost Elements
IMG à Controlling à Product Cost Controlling à Product Cost Planning à Basic Settings for Material Costing à Overhead à Maintain Overhead Cost Elements
To allocate overhead to products, you need to define overhead cost elements.
The SAP system then posts the overheads to these overhead cost
elements.
The cost center is credited with the overhead cost element and the
product or the production order is debited with the overhead cost element.
Let us now create secondary cost elements for overhead.
Create secondary cost elements of type 41 (overhead).
Update the following:-
Click on Save
Have a Look At the Offering of the Configuration Material Provided In SAP FICO Module:
SAP FI GL
- Company code configuration which includes creating chart of accounts,
- Creating posting period variant, defining retained earnings account,
- Creating document types. Define tolerance groups for employees
- Configuration for Maximum exchange rate differences
- Configuring parallel currencies
- Configuration for automatic clearing
- Configuration for foreign currency valuation
- Configuration for regrouping of GR/IR clearing
- Creating financial statement version i.e. defining balance sheet and profit and loss account
- Integration - FI- MM automatic account assignment, FI- SD automatic account assignment
SAP AR & AP & Bank accounting
- Configuring account groups for Customers and Vendors, defining screen layout per activity for customers and vendors
- Deleting customer data
- Configuring payment terms
- Automatic account assignment for various AR & AP transactions like bank charges, overpayments/underpayments, exchange rate difference, rounding differences
- Configuring payment block reasons
- Configuring automatic payment program
- Includes House bank configuration
- Configuring the manual bank reconciliation and the electronic bank reconciliation
- Configuration for dunning
- Configuration for special G/L transactions like down payment made, down payment received
- Configuration for regrouping according to maturity
SAP Asset Accounting
- Creating/Copying Depreciation Areas- Assignment to company Code,
- Input Tax Indicator Configuration , Screen Layout Rules
- Specify Account Determination Rules - Define Asset Classes, Number Ranges,
- Critical Check Boxes Notification
- Integration of Asset Accounting with General Ledger, Defining Posting Rules to Cost Center, Specify Financial Statement Versions for Asset Accounting
- Complex Depreciation Calculation Procedures- Setting up of Depreciation Areas, depreciation key, Define Cut off Value key
- Defining the crucial Base Methods, Declining Balance Methods, Multilevel Methods, Maintaining Period Controls
- Pre Production Go Live Activities and Their Configuration
SAP Cost Center Accounting
- Maintaining controlling area settings, which includes defining modules which are active i.e. profit center, profitability analysis, internal orders. Assigning company code to controlling area.
- Multiple valuation approaches/transfer prices - maintaining currency and valuation profile assigning it to controlling area, creating actual versions for parallel valuations
- Cost element accounting - creation of various types of cost elements
- Settings for Reconciliation Ledger which includes defining adjustments accounts for reconciliation postings
- Creating cost center hierarchy, cost center, cost center groups, activity types, statistical key figures
- Creating planning layouts for cost center planning
- Configuring various allocation cycles - Distribution, assessment, indirect activity allocation. Configuring the splitting structure
- Configuring automatic account assignment table.
SAP Product Costing & Material Ledger Configuration (Sells separately for $249)
- Product Cost Planning- Detailed configuration of overhead keys, costing sheets, overhead groups and Complete Cost Component Structure
- Material Cost Estimates - In depth configuration and analysis of the Costing Variants including Valuation variant, Transfer Strategy and Costing Types
- Special Features of Cross Company Costing
- Complete Cost Object Controlling Configuration across various industries including Repetitive Manufacturing
- Complete Integration with Production Planning on Default Order types, parameter checks
- Work in Progress Configuration- Calculation of Results Analysis keys, Valuation Method and Assignments.
- Detailed Variance Calculation configuration and setting up of Variance keys
- Setting up the Settlement Profile, Allocation and Source Structure including the complex PA Transfer Structure
- Detailed configuration for Sales Order Costing - Make To Order (An absolute steal)
- Detailed configuration for Make to Stock ( An absolute steal)
- Detailed configuration of Material Ledger ( A real value add)
SAP Profit Center
- Maintaining profit center settings, creating dummy profit center, making settings for actual flow of data.
- Maintaining profit center hierarchy, creating profit center
- Maintaining settings for transfer prices
- Maintaining planning layout for profit center planning
- Configuring allocation cycles - Distribution, assessment
- Maintaining automatic account assignment of revenue elements
- Maintaining the additional balance sheet and profit and loss accounts (3KEH)
SAP Profitability Analysis (Sells separately for $199)
- Configuring the operating concern which includes maintain characteristics, maintain value fields. Copying customizing from an existing operating concern
- Maintaining user defined characteristics, maintaining characteristics hierarchy
- Define Characteristics derivation
- Configuring valuation strategies. Valuation using standard cost estimate
- Configuring condition tables and costing sheets
- Manual planning, automatic planning, integrated planning
- Configuring the value flow from SD to COPA, configuring the value flow from FI, MM to COPA
- Configuring assessment cycle for value flow from CO to COPA
- Configuring settlement of production variances to COPA
- Configuring Profitability reports for COPA
User Training Documents and Power Point Presentations for Each of the Above FI CO Sub Modules.
User Training Documents
These User Training Documents cover the entire Master Data, Day to Day Transactions and the Month End and Period End Closing Activities for each of the FI-CO Sub Modules laid out above. They come with Step by Step with SAP screen shots & compliment the Configuration Material .
Power Point Presentations
The Power Point Presentations presented are unique. They are not the usual ones you see floating around in the SAP Market. They are tailor made to gel with the Configuration and User Training Documents. They provide Rich Content which you can use to enhance your knowledge and use it in your Blue Printing Phase of Your Project.