CListCtrl FAQ

개발 2007/06/19 12:28

Celtic Wolf, Inc. Home Page
Back to Useful Information

This FAQ answers questions that are frequently asked in microsoft.public.vc.mfc about the MFC class CListCtrl and the related class CListView.

Contents:
Insertion
1. When I try to insert information in the second, third, etc. columns, with InsertItem(), it doesn't work. Why?
Appearance
2. How do I make selection appear even when control doesn't have focus?
3. How do I select the entire row?
Getting and setting item states
4. How do I get the item's selected/focused state?
5. How can I check the state of an item's checkbox
6. How do I programmatically (de)select an item?
7. How do I programmatically make an item (un)focused?
8. How do I programmatically set the state of an item's checkbox?
Preventing the user from altering item states
9. How do I prevent an item from being (de)selected?
10. How can I prevent an item from being (un)checked?
Finding items
11. How do I find the (first) selected item?
12. How do I find the item with the focus?
Columns
13. When I create my control with column 0 set for center or right justification, why is it drawn with left justification?
Sorting
14. When my sorting callback function is called, why are lParam1 and lParam2 always 0?
15. How can I sort the control when the user clicks on a column header?
Advanced
16. How can I get the contents of a control in another program?

1. When I try to insert information in the second, third, etc. columns, with InsertItem(), it doesn't work. Why?

LVITEM lvi;
::ZeroMemory(&lvi, sizeof(LVITEM));
// Insert item for col 0
lvi.mask = LVIF_TEXT;
lvi.pszText = "one";
m_ListCtrl.InsertItem(&lvi);
// Insert subitem for col 1
lvi.pszText = "two";
lvi.iSubItem = 1;
m_ListCtrl.InsertItem(&lvi);

You can't use any of the InsertItem() functions or messages to insert subitems. Instead, you must use SetItemText() (or ListView_SetItemText() or LVM_SETITEMTEXT). InsertItem() inserts the row and populates the first cell. In order to populate additional cells in that row, you must call SetItemText().

2. How do I make selection appear even when control doesn't have focus?

Use the style LVS_SHOWSELALWAYS when creating your control.

3. How do I select the entire row?

Use CListCtrl::SetExtendedStyle to set the style LVS_EX_FULLROWSELECT. Note that this requires version 4.70 or higher of the comctl32.dll.

4. How do I get the item's selected/focused state?

UINT uState = m_ListCtrl.GetItemState(iIndex, LVIS_SELECTED | LVIS_FOCUSED);
if (uState & LVIS_SELECTED)
	// Item is selected
if (uState & LVIS_FOCUSED)
	// Item has the focus

5. How can I check the state of an item's checkbox

Use CListCtrl::GetCheck() or ListView_GetCheckState()

6. How do I programmatically (de)select an item?

Select: m_ListCtrl.SetItemState(iItem, LVIS_SELECTED, LVIS_SELECTED);
Deselect: m_ListCtrl.SetItemState(iItem, 0, LVIS_SELECTED);

7. How do I programmatically make an item (un)focused?

Focused: m_ListCtrl.SetItemState(iItem, LVIS_FOCUSED, LVIS_FOCUSED);
Unfocused: m_ListCtrl.SetItemState(iItem, 0, LVIS_FOCUSED);

8. How do I programmatically set the state of an item's checkbox?

Use CListCtrl::SetCheck() or the following macro:

#ifndef ListView_SetCheckState
   #define ListView_SetCheckState(hwndLV, i, fCheck) \
      ListView_SetItemState(hwndLV, i, \
      INDEXTOSTATEIMAGEMASK((fCheck)+1), LVIS_STATEIMAGEMASK)
#endif

9. How do I prevent an item from being (de)selected?

10. How can I prevent an item from being (un)checked?

You'll need to handle LVN_ITEMCHANGING and return FALSE to allow the item to be (un)checked or (de)selected and return TRUE to disallow a change.

Here's some code that might help.

Add this to your CMyListCtrl class definition as a protected function:

// Returns TRUE if the item is checked, false if it is not or uState == 0
inline BOOL IsChecked(UINT uState) {return
(uState ? ((uState & LVIS_STATEIMAGEMASK) >> 12) - 1 : FALSE);}

Here's a sample function for handling LVN_ITEMCHANGING:

void CTestListView::OnItemchanging(NMHDR* pNMHDR, LRESULT* pResult)
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	
	// If old state is unchecked and new state is checked
	// then item is being checked.
	if ((! IsChecked(pNMListView->uOldState)) &&
		(IsChecked(pNMListView->uNewState)))
		MessageBox("Item is being checked");
	
	// If old state is checked and new state is unchecked,
	// item is being unchecked
	else if ((IsChecked(pNMListView->uOldState)) &&
		(! IsChecked(pNMListView->uNewState)))
		MessageBox("Item is being unchecked");

	// return FALSE (or 0) to allow change, TRUE to prevent
	*pResult = 0;
}//OnItemchanging

11. How do I find the (first) selected item?

First: int iItem = m_ListCtrl.GetNextItem(-1, LVNI_SELECTED);
Subsequent: iItem = m_ListCtrl.GetNextItem(iItem, LVNI_SELECTED);

12. How do I find the item with the focus?

int iItem = m_ListCtrl.GetNextItem(-1, LVNI_FOCUSED);

13. When I create my control with column 0 set for center or right justification, why is it drawn with left justification?

For some reason, the control doesn't pay any attention to the LVCOLUMN.fmt value when creating the column. However, you can change this value later by calling CListCtrl::SetColumn() (or using ListView_SetColumn or LVM_SETCOLUMN). Simply set LVCOLUMN.fmt to the desired value.

LVCOLUMN lvCol;
::ZeroMemory(&lvCol, sizeof(LVCOLUMN));
lvCol.mask = LVCF_TEXT;
lvCol.pszText = "Col0";
// Insert the column
int iCol = m_ListCtrl.InsertColumn(0, &lvCol);
// Set it to be centered
lvCol.mask = LVCF_FMT;
lvCol.fmt = LVCFMT_CENTER;
BOOL bRes = m_ListCtrl.SetColumn(iCol, &lvCol);

14. When my sorting callback function is called, why are lParam1 and lParam2 always 0?

Some versions of the documentation on CListCtrl::SortItems and LVM_SORTITEMS seem to imply that the values of lParam1 and lParam2 are the indices of the items to be sorted. This is not the case. They are the 32 bit values that can be assigned to each item via CListCtrl::SetItemData or via the lParam member of the LVITEM struct. If you have not assigned any data to these variables, then they will be zero when passed to your sort function.

15. How can I sort the control when the user clicks on a column header?

To capture the click event: Sorting the list when user clicks on column header
To draw a sort arrow on the header: Indicating sort order in header control

16. How can I get the contents of a list control in another program?

See the September 1997 Win32 Q&A by Jeffrey Richter in MSJ

Home

Posted by 디오디오

복잡한 업무를 개발하다 보면 sp 를 분리해야 할 경우가 많습니다. 각각의 sp 가 asp 에서 직호출될 때도 트랜잭션이 보장되어야 하고 sp 를 중첩해서 호출할 때도 하나의 트랜잭션으로 처리되어야 합니다. 의외로 이런 상황이 자주 발생하는데, 단독호출/중첩호출 상황을 한 트랜잭션에 모두 커버할 수 있는 표준적인 sp 작성법은 부재한 실정입니다. 본 문서는 이런 상황을 비교적 깔끔하게 해결할 수 있는 sp 작성법을 알려드리고자 쓰여졌습니다. 간단한 시나리오를 가정해서 설명을 하도록 하겠습니다.
1. dbo.up_inner 를 먼저 개발
A라는 프로젝트에서 up_inner 라는 sp 를 만들었습니다. DB개발 가이드가 배포되기 이전의 일반적인 sp 작성법에 따르면 대체로 다음과 같은 방식으로 만들어집니다.

create proc dbo.up_inner
@cust_no varchar(10)
as
set nocount on
set transaction isolation level read uncommitted
begin tran
select (생략...)
insert (생략...)
if @@error <> 0
begin
rollback tran
return
end
update (생략)
if @@error <> 0
begin
rollback tran
return
end
commit tran

asp 에서 이 sp 를 호출해서 사용하는데 아무런 문제가 없습니다. 트랜잭션 처리도 잘 되어 있고 정상적으로 돌아갑니다.
2. dbo.up_outer 를 개발
dbo.up_inner 를 사용해서 프로젝트를 오픈했습니다. 그런데 운영업무 도중 어떤 요구사항 때문에 dbo.up_outer 를 만들고, 그 안에서 dbo.up_inner 를 call 해야 할 일이 생겼습니다. 당연히 dbo.up_outer 전체에서 한 트랜잭션에 모든 것이 처리되어야 합니다. 일단 다음과 같은 코드가 만들어 질 것을 예상할 수 있습니다.

create proc dbo.up_outer
@cust_no varchar(10)
as
set nocount on
set transaction isolation level read uncommitted
begin tran
insert (생략)
if @@error <> 0
begin
rollback tran
return
end
exec dbo.up_inner @cust_no
delete (생략)
if @@error <> 0
begin
rollback tran
return
end
commit tran

위의 코드를 하나하나 뜯어보겠습니다. 언뜻 보기에는 에러처리가 잘 되어 있는 듯 하지만 여러 문제점이 존재합니다.
exec dbo.up_inner @cust_no
이 부분이 가장 심각한 문제가 있습니다. 호출하는 것 자체는 문제가 아닙니다. 하지만 dbo.up_inner 에서 어떤 에러로 인해 rollback 을 했다고 가정합시다. 그런데 문제는 dbo.up_inner 에서 rollback 을 하면 dbo.up_inner 내부에서 시작한 트랜잭션만 rollback 하는 것이 아니라 자신이 속해있는 transaction context 를 모두 rollback 해버립니다. 즉, dbo.up_outer 에서 시작한 트랜잭션을 rollback 해버리는 것이지요.
이제 어떻게 될까요?
네… dbo.up_outer 의 commit 에서 에러를 냅니다. 만약 delete 문이 실패했다면, rollback 을 하려고 해도 dbo.up_inner 에서 트랜잭션이 이미 rollback 되었기 때문에 에러를 냅니다. 이런 상황은 여러 번 겪어보셨을 줄로 압니다. 그래서 기존의 코드들을 보면 dbo.up_inner 에서 트랜잭션을 빼는 방향으로 수정해서 이런 상황을 해결하고 있습니다. 하지만 아시다시피 dbo.up_inner 에서 트랜잭션을 제거하면 dbo.up_inner 가 단독으로 호출되었을 때 데이터 정합성을 보장받을 수 없죠. 데이터 맞추느라 짚더미에서 바늘찾기를 해보신 분들이라면 데이터 정합성의 중요성을 뼈저리게 느끼고 있으실 겁니다.
이 상황을 깔끔하게 해결하는 방법이 없을까요?
네 있습니다. 모든 sp 를 DB개발 가이드의 에러처리 샘플을 정확하게 지켜서 개발하시면 됩니다. ㅎㅎㅎ 개발 가이드의 에러처리 샘플은 중첩호출 상황을 염두에 두고 만들어진 것입니다. 이제 dbo.up_inner 와 dbo.up_outer 를 에러처리 샘플에 맞춰서 수정해보겠습니다.
[dbo.up_inner]

create proc dbo.up_inner
@cust_no varchar(10)
as
set nocount on
set transaction isolation level read uncommitted
begin tran
select (생략...)
insert (생략...)
if @@error <> 0
begin
goto HANDLE_ERROR -- 에러가 발생하면 공통 에러 처리 레이블로 점프
end
update (생략)
if @@error <> 0
begin
goto HANDLE_ERROR
end
commit tran
if @@nestlevel = 1 – 중첩레벨 1 은 asp 에서 직접호출
select -1 as ret_code
return -- 반드시있어야함! 이게없으면아래쪽의HANDLE_ERROR 까지실행하게됨
else -- 중첩레벨1 아닌 것은 외부sp 에서 중첩호출
return -1

HANDLE_ERROR:
if @@trancount > 0 rollback tran
if @@nestlevel = 1
select -1 as ret_code
else
return -1

볼드체로 된 부분에 주목해 주세요. 에러 처리 로직을 한군데로 몰았고, commit 후나 rollback 후에 @@nestlevel 을 체크해서 최종 결과 코드를 리턴하고 있습니다. @@nestlevel 은 중첩레벨을 나타내는 시스템 함수입니다. @@nestlvel 이 0 이면 asp 에서 호출한 것이므로 select 로 에러코드를 넘겨줍니다. @@nestlevel 이 0 보다 크면 외부 sp 에서 중첩호출한 것이므로 return 문으로 에러코드를 넘겨줍니다. 또는 OUTPUT 변수로 넘겨줄 수도 있겠습니다. (참고로 return 문은 numeric 데이터만 리턴가능합니다. 문자는 리턴할 수 없습니다)
[dbo.up_outer]

create proc dbo.up_outer
@cust_no varchar(10)
as
set nocount on
set transaction isolation level read uncommitted
begin tran
insert (생략)
if @@error <> 0
begin
goto HANDLE_ERROR
end
declare @ret_code int
exec @ret_code = dbo.up_inner @cust_no --dbo.up_inner에서 return하 고 결과코드를 받음
if @@error <> 0 or @ret_code < 0 -- @@error 와@ret_code 값에따라에러처리
begin
goto HANDLE_ERROR
end

delete (생략)
if @@error <> 0
begin
goto HANDLE_ERROR
end
commit tran
if @@nestlevel = 1
select -1 as ret_code
return -- 반드시있어야함! 이게 없으면 아래쪽의 HANDLE_ERROR까지 실행하게 됨
else
return -1
HANDLE_ERROR:
if @@trancount > 0 rollback tran – 항상 @@trancount를 체크해서 rollback
if @@nestlevel = 1
select -1 as ret_code
else
return -1

마찬가지로 볼드체 부분에 주목해주세요. dbo.up_inner 를 호출해서 @ret_code 를 받을 때는 위와 같은 방식으로 코드를 작성합니다. 그리고 exec 를 하자마자 바로 @@error 와 @ret_code 를 체크해서 에러처리를 수행합니다. Exec 후에 set @aaa = @bbb 와 같은 코드가 들어가면 그 순간 @@error = 0 이 되어 에러처리 로직이 동작하지 않게 되므로 주의해주세요.
이제 rollback 하는 부분을 특히 주목해서 봐주세요. HANDLE_ERROR 로 넘어올 때는 이미 dbo.up_inner 에서 전체 트랜잭션을 rollback 한 후가 될 수도 있습니다. 따라서 rollback 하기 전에는 언제나 @@trancount 를 체크해서 rollback 하도록 하면 안전한 코드가 됩니다. 그리고 외부에 결과코드를 넘겨주는 것도 @@nestlevel 을 체크해서 수행합니다.
그런데 여기서 한가지 의문이 생길 수 있습니다. 트랜잭션을 중첩시키고 있는데, 중첩 트랜잭션은 단일 트랜잭션보다 시스템에 더욱 부하를 주는 것이 아닌가 하는 것입니다. 결론부터 말씀드리면 트랜잭션을 중첩시킨다고 해서 특별히 부하가 더 가중되는 것은 아닙니다. Begin tran 후에 또 다시 begin tran 은 하게 되면 단지 내부적으로 @@trancount 가 1 증가할 뿐입니다. 그리고 rollback 을 하게 되면 전체 트랜잭션을 rollback 하고 @@trancount 를 0 으로 만듭니다. 중첩 트랜잭션하에서 commit 은 @@trancount 가 1 이 될 때까지 @@trancount 를 하나 감소시키기만 하다가 @@trancount 가 1 인 상태에서 commit 를 만나면 그때서야 비로소 DB에 실제 commit 를 하게 됩니다. 따라서 위와 같은 방식으로 코드를 작성해도 특별히 DB에 부하가 더 가는 것은 아닙니다. 시스템에 부담을 주는 것은 트랜잭션의 중첩 수준이 아니라 트랜잭션의 길이입니다. 데이터 정합성을 고려해 트랜잭션을 최대한 지키면서 가능한 한 트랜잭션의 길이를 짧게 가져가는 방향으로 고민을 해주시길 부탁드립니다.

Posted by 디오디오

Contents

1. What is ERP

2. SAP R/3 Functionality

2.1 Logistics

2.2 Accounting

2.3 Human Resources (HR)

2.4 Cross-Application Functions

3. New Dimension Products

4. SAP R/3 Architecture

5. mySAP.com and the Internet

6. SAP R/3 Custom Configuration & Implementation

7. Sources

1. What is ERP

Many key business applications are now implemented using comprehensive and complex Enterprise Resource Planning (ERP) software. ERP software facilitates the flow of information among all the processes of an organization’s supply chain, from purchases to sales, including accounting and human resources. Process thinking is a key element in this business restructuring, differing from previous approaches with traditional application "silos", where departments within a company operated with poor interaction with other departments. ERP software eliminates the common problem of multiple incompatible software systems and databases in use in the departments or functional areas of many corporations. With one integrated comprehensive system (which could be distributed internationally) with one database, processes run more smoothly with up to date information availability throughout the corporation.

It is important for students to gain an understanding of the impact of ERP solutions in business today. Every business area is affected; implementing ERP systems in a corporation is a complex undertaking and has been likened to the effort required in merging two companies together.

ERP products are available from several vendors, including SAP AG, PeopleSoft, J.D. Edwards and Oracle. The ERP software market leader is SAP AG with the SAP R/3 System.

There is great demand in industry for people that are knowledgeable about ERP and specifically about SAP R/3 System. The following sections present an introduction to SAP R/3 and other SAP products that work together with R/3 or may be separate products.

top

2. SAP R/3 Functionality

R/3 software allows the integration of all of a company’s business operations in an overall system for planning, controlling and monitoring. Over 1000 ready-made business processes are available, that include best business practices that reflect the experiences, suggestions and requirements of leading companies in a host of industries. New features are continuously being added to releases of R/3.

SAP R/3 System provides an integrated suite of business applications that covers a full range of processes used in almost any business. The main application groupings are:

  • Logistics
  • Financial/Management Accounting and Reporting
  • Human Resources
  • Cross-Application Functions

The following sub-sections list the main applications and some of their components.

2.1 Logistics

  • Logistics General (LO)

Logistics General integrates the manufacturing and distribution functions for Sales and Distribution, Production Planning, Materials Management, Plant Maintenance and Quality Management. The following components are included:
    • Logistics Information System (LO-LIS)
    • Master Data (LO-MD)
    • Forecast (LO-PR)
    • Variant Configuration (LO-VD)
    • Engineering Change Management (LO-ECH)
  • Materials Management (MM)
A material can also be a person or a service. The MM application supports manufacturing, distribution and service industries:
    • Material Requirements Planning (MM-MRP)
    • Purchasing (MM-PUR)
    • Inventory Management (MM-IM)
    • Warehouse Management (MM-WM)
    • Invoice Verification (MM-IV)
    • Information System (MM-IS)
    • Electronic Data Interchange (MM-EDI)
  • Sales & Distribution (SD)
This includes sales, shipping, and billing. It actively supports sales and distribution activities with functions for pricing, prompt order processing, and on-time delivery, interactive multilevel variant configuration, and a direct interface to Profitability Analysis and Production.
    • Master Data (SD-MD)
    • Basic Functions (SD-GF)
    • Sales (SD-SLS)
    • Shipping (SD-SHP)
    • Billing (SD-BIL)
    • Sales Support (SD-CAS)
    • Information System (SD-IS)
    • Electronic Data Interchange (SD-EDI)
  • Production Planning (PP)
This involves the planning and control of manufacturing activities, including make-to-order or repetitive manufacturing.
    • Basic Data (PP-BD)
    • Sales and Operations Planning (PP-SOP)
    • Master Planning (PP-MP)
    • Capacity Requirements Planning (PP-CRP)
    • Material Requirements Planning (PP-MRP)
    • Production Orders (PP-SFC)
    • Product Costing (PP-PC) (which is also CO-PC Product Costing)
    • Kanban/Just-in-Time Production (PP-KAB)
    • Repetitive Manufacturing (PP-REM)
    • Assembly Orders (PP-ATO)
    • Production Planning for Process Industries (PP-PI)
    • Plant Data Collection (PP-PDC)
    • Information System (PP-IS)
  • Quality Management (QM)
This module provides quality planning, inspections, certificates, notification. It monitors, captures, and manages all processes relevant to quality assurance along the entire supply chain, coordinates inspection processing, initiates corrective measures, and integrates laboratory information systems.
    • Planing Tools (QM-PT)
    • Inspection Processing (QM-IM)
    • Quality Control (QM-QC)
    • Quality Certificates (QM-CA
    • Quality Notifications (QM-QN)
  • Plant Maintenance (PM)
The Plant Maintenance module provides planning, control, and processing of scheduled maintenance, inspection, damage-related maintenance, and service management to ensure availability of operational systems, including plants and equipment delivered to customers.
    • Equipment and Technical Objects (PM-EQM)
    • Preventive Maintenance (PM-PRM)
    • Maintenance Order Management (PM-WOC)
    • Maintenance Projects (PM-PRO)
    • Service Management (PM-SMA)
    • Plant Maintenance Information System (PM-IS)

top

2.2 Accounting

  • Financial Accounting (FI)
This application enables the company to publish legally required financial documents, and includes the following modules:
    • General Ledger (FI-GL)
    • Accounts Receivable (FI-AR)
    • Accounts Payable (FI-AP)
    • Legal Consolidation (FI-LC)
    • Special Purpose Ledger (FI-SL)
  • Controlling (CO)
The following modules are integrated with FI and are used to better control a business:
    • Overhead Cost Control (CO-OM)
    • Product Costing (CO-PC)
    • Activity-Based Costing (CO-ABC)
    • Sales and Profitability Analysis (CO-PA)
    • Project Control (CO-PRO)
  • Enterprise Controlling (EC)
    • Executive Information System (EC-EIS)
    • Business Planning (EC-BP)
    • Management Consolidation (EC-MC)
    • Profit Center Accounting (EC-PCA)
  • Treasury (TR)
The Financial Accounting module provides treasury functions, but the following are more specialized:
    • Treasury Management (TR-TM)
    • Funds Management (TR-FM)
    • Cash Management (TR-CM)
    • Market Risk Analyzer (TR-MRM)
  • Capital Investment Management (IM)
    • Tangible Fixed Assets (IM-FA)
    • Financial Investments (IM-FI)
  • Project System (PS)
This module accommodates all types of research and development projects. It coordinates and controls all phases of a project, in direct cooperation with Purchasing and Controlling, from quotation to design and approval, to resource management and cost settlement.
    • Basic Data (PS-BD)
    • Operational Structures (PS-OS)
    • Project Planing (PS-PLN)
    • Approval (PS-APP)
    • Project Execution/Integration (PS-EXE)
    • Information System (PS-IS)

top

2.3 Human Resources (HR)

The Human Resources module includes administration, payroll accounting, shift management, employee attendance, trip costs, training, and recruitment. It provides solutions for planning and managing the company’s human resources, using integrated applications that cover all personnel management tasks and help simplify and speed the processes.

  • Personal Planning and Development (HR-PD)
    • Organizational Management (PD-OM)
    • Seminar and Convention Management (PD-SCM)
    • Personnel Development (PD-PD)
    • Workforce Planning (PD-WFP)
    • Room Reservations Planning (PD-RPL)
  • Personnel Administration (HR-PA)
    • Employee Management (PA-EMP)
    • Benefits (PA-BEN)
    • Compensation Administration (PA-COM)
    • Applicant Management (PA-APP)
    • Time Management (PA-TIM)
    • Incentive Wages (PA-INW)
    • Travel Expenses (PA-TRV)
    • Payroll (PA-PAY)

top

2.4 Cross-Application Functions

  • Business Workflow (WF)

The Business Workflow module contains functions that can be used in all application components, linking the integrated application modules with cross-application technologies, tools and services. A typical example of a business process that can be actively controlled using SAP Business Workflow is the complete processing of a customer order from its receipt through delivery of the goods and issuing the invoice. You can automate all the steps in this business process and define all the roles of the appropriate employees. You can check a customer’s credit line and creditworthiness, query the stock on hand, and automatically place an order. Clerical staff can process the individual work items in a working environment familiar to them, request information on the current status of specific workflows at any time, and trace the history of the work process. All these functions can also be accessed through the Internet.

  • SAPoffice

This provides electronic mail messaging for users and also by SAP applications.

  • Business Warehouse (BW)

The Business Warehouse provides management reporting, including non-SAP data sources into reports. This independent data warehouse solution summarizes data from R/3 applications and external sources to provide executive information for supporting decision making and planning. Reports cover a wide range of information requirements, automated data staging, and standard R/3 business process models.

  • Industry Solutions (IS)
Industry Solutions combine the R/3 application modules and additional Industry specific functionality. The following are some of the industries for which modules have been developed:
    • Aerospace & Defense
    • Automotive
    • Banking
    • Chemicals
    • Consumer Products
    • Engineering & Construction
    • Healthcare
    • High Tech & Electronics
    • Higher Education & Research
    • Insurance
    • Media
    • Mill Products
    • ining
    • Oil & Gas
    • Pharmaceuticals
    • Project Oriented Manufacturing
    • Public Sector
    • Retail
    • Service Provider
    • Telecommunications
    • Utilities
  • International Development (INT)
Users in different countries have different needs regarding currency, legal requirements, and commercial practice. The components for different regions are:
    • Asian and Pacific Area (IN-APA)
    • Europe (IN-EUR)
    • North America (IN-NAM)
    • Africa/Middle East (IN-AFM)
    • South America (IN-SAM)

top

3. New Dimension Products

New Dimension Products can stand alone or be integrated with R/3. Some components are included in the above R/3 list; the following are components of New Dimension Products:

.

  • Supply Chain Management (SCM)

SAP Advanced Planner and Optimizer (APO) is a tool for planning, optimizing, and scheduling software applications that enable the integration and synchronization of the supply chain on a global scale, from suppliers, agents, and production planners, to purchasers, customers and consumers.

  • Business Information Warehouse

This has been mentioned above.

  • Business-to-Business Procurement

This enables inter-enterprise procurement, including the creation and maintenance of requisitions, purchase orders and reservations with or without electronic catalogs, approval and rejection, desktop receiving and service entry, status and tracking, invoicing, and performance reporting functions. All end users are able to purchase goods and services straight from their workplace.

  • Corporate Finance Management (CFM)

This is a comprehensive package for managing financial resources, and analyzing and optimizing business processes in the finance area of a company.

  • Customer Relationship Management (CRM)

CRM provides a solution that enables companies to effectively manage customer relationships throughout the entire lifecycle, understanding as well as anticipating the needs of customers and prospects.

  • Knowledge Warehouse

This is the cornerstone of SAP’s Knowledge Management solution for continuous knowledge transfer and life-long learning. It contains a repository for storing content and includes the tools to create, modify, distribute, and administer that content. The SAP HR components Personnel Development (PD) and Training and Event Management (TEM) provide functionality together with the Knowledge Warehouse. The Knowledge Warehouse provides unstructured information; the Business Information Warehouse provides structured data.

  • Strategic Enterprise Management ( SEM)

SEM includes the following components:

    • Business Consolidation (BCS) provides functionality for financial consolidation and value-based accounting.
    • Business Planning and Simulation (BPS) provides functionality to support integrated strategic and operational business planning. These functions include the creation of dynamic and linear business models, simulation of various scenarios, evaluation of these scenarios taking account of the business risks, resource allocation as part of business planning, and rolling forecasting.
    • Corporate Performance Monitor (CPM) provides support for the definition, analysis, visualization, and interpretation of key performance indicators.
    • Business Information Collection (BIC) provides functionality for automated and semi-automated collection of structured and – especially – unstructured business information from internal and external sources. This includes an automatic search for relevant business information in the Internet, and the structuring of any information found.
    • Stakeholder Relationship Management (SRM) provides functionality to support the stakeholder communication process: the stakeholders are informed regularly and systematically about the business strategy and its effects on their stakeholder value. In addition, the component helps to collect feedback from stakeholders in a structured manner, and then to pass this on to the other components (SEM-CPM and SEM-BPS).

top

4. SAP R/3 Architecture

The SAP Business Framework is a family of SAP and non-SAP products. It is an open, integrated, component-based enterprise business application solution for companies of any size in any industry. Business Framework provides flexibility in setting up enterprise-critical distributed IT systems using independent components. The R/3 System is an evolving family of application components, that can be combined into an integrated, continuously maintainable network solution regardless of the release of the components. Business Framework is an open design, allowing integration of components from third-party vendors.

The SAP R/2 System was developed to run on mainframe computers; SAP R/3 System has been developed to run with a distributed multi tier client/server architecture. SAP R/3 can be configured to run on a single computer, or it can be distributed among many different machines at different locations. There is a clear distinction between the presentation, application, database, and Internet-enabling layers.

The presentation layer is the user interface, and a number of different graphical user interfaces (GUIs) can be used. SAPGUI is SAP’s own user interface software (in over 20 different languages), but Microsoft Windows or Internet browser interfaces can be used in its place. Other examples of interfaces are kiosk systems, and telephone answering systems.

Application servers contain the complete business process logic of R/3 applications. These application servers can run on Windows NT systems, major UNIX operating systems, and AS/400 systems. A number of different application servers can be connected in a network, distributed geographically.

The database layer manages both the R/3 System application components and the enterprise’s working data. This task is performed using relational database management systems. Supported are IBM DB2, Informix Online, Microsoft SQL Server, and Oracle. Database servers can be on different servers from the application servers, and can include mainframes, Windows NT, UNIX or AS/400. The industry standard SQL (Structured Query Language) is used for defining and manipulating all data. Applications are fetched from the database as required, loaded into the application layer, and then run from there.

SAP also has an Internet layer (with access through a Web server) that works with System R/3 that enables a corporation to couple its systems with customers and vendors. Employees can access the system over the Internet or intranet, customers can place orders, and vendors can access their customers’ warehouse data to schedule deliveries just in time. See mySAP.com below, which is central to SAP’s internet strategy.

SAP Application Link Enabling (ALE) is used to manage widely distributed, loosely coupled systems, based on an exchange of messages controlled by business processes. Individual companies in a corporation can distribute their transaction workloads where data are distributed, while a common service is offered throughout the network. Individual tasks can be distributed across locations. The systems involved can be different R/3 systems or non R/3 systems. With ALE, applications are integrated using asynchronous communications mechanisms.

The R/3 System offers standard interfaces to enable integration of R/3 with the processes and data of business applications from other vendors. These object-oriented interfaces are called business application programming interfaces (BAPIs). BAPIs are compatible with Microsoft’s Distributed Component Object Model (COM/DCOM) specifications and the Object Management Group’s Common Object Request Broker (CORBA) specifications.

R/3 applications are modules that can be used alone or combined with other solutions. R/3 is scalable and can be used with from 30 to several thousand users.

Popular desktop programs such as MS Word, MS Excel, and MS Project can be linked to R/3 applications. Electronic Data Interchange (EDI) between companies is also part if R/3.

The BASIS System is the fundamental software within R/3. Application modules listed above in SAP R/3 Functionality are added as needed.

ABAP is the SAP programming language that is used in the application modules. Custom programming with ABAP is possible for add on modules (but the standard SAP modules should not be modified).

top

5. mySAP.com and the Internet

mySAP.com is SAP’s term for its Internet offering and strategy. The mySAP.com portals are ways of accessing all of the services and benefits afforded by this strategy. mySAP.com is an open collaborative business environment of personalized solutions. According to SAP, it is a comprehensive basket of offerings that includes Internet-enabled applications, such as the Web-enabled core components of SAP R/3.

mySAP.com will be the interface to all SAP products: collaborative, front office, and back office. SAP’s vision is to continue to provide complete, integrated solutions. Users of all the software solutions will access their applications via the easy-to-use Workplace on their desktop. All of the applications will continue to work in an integrated fashion.

mySAP.com integrates seamlessly with existing R/3 functions, users of mySAP.com need not have R/3 installed, and R/3 can be used without mySAP.com. If R/3 is installed, then mySAP.com would sit on top of the R/3 applications.

mySAP.com is intended to incorporate all current SAP products in the form of components. From Release 4.6 on, R/3 will be a mySAP.com component. mySAP.com can interoperate with R/3 from Release 3.1 on. Earlier R/3 releases can be connected on a project basis.

R/3 Release 4.6 is also called the EnjoySAP Release with a new interface that has made SAP software easier to learn, tailor and use.

The mySAP.com Workplace provides personal access to the business environment. It is a customizable, Web-enabled doorway into R/3, offering additional functions and services beyond the core R/3 functions. In addition, it provides integration with other ERP solutions and non-ERP information sources including financial market data, news tickers, and industry-specific content.

The mySAP.com Workplace is tailored to individuals, companies, and industries. It makes the business solutions, knowledge, and services they need in their daily business activities readily available. The users, through their browsers, can access functionality that is most relevant to their roles, and then configure their personal desktops to suit their individual work styles. The following are provided, or being developed:

  • Access to business solution applications
  • Access to internal corporate information, reports, press releases
  • Access to services available on the Internet
  • Access to any user applications
  • Access to the mySAP.com Marketplace

The mySAP.com Marketplace is actually two things. It is the infrastructure that supports many SAP collaborative Business Scenarios, allowing many buyers and sellers to come together to exchange goods, services, and information. It is also the name currently used to describe the Web portal that SAP hosts at http://marketplace.mySAP.com. Anyone can access and use the Marketplace via www.mySAP.com. Buyers as well as sellers can leverage the Marketplace without the need for any SAP software.

The personalized Workplace is the employee enterprise portal, the Marketplace is the global e-business hub.

A Business Scenario offers the specific knowledge, functions, and services that one or more users may need to succeed in a business task. mySAP.com provides a host of e-business solutions, including purchasing, collaborative planning, employee self service, direct customer servicing, and inter-business knowledge management. Business Scenarios will provide access to all R/3 and SAP New Dimension functionality.

SAP has introduced the Internet Business Framework, which uncouples the integration technology from the development language and runtime. This means that the software module that calls a certain service need not be written in the same language as the software module that provides the service. Rather, the software providing the service can be implemented in virtually any language.

SAP also provides mySAP.com Application Hosting, where the IT services are outsourced to a hosting partner, with access to SAP products.

top

6. SAP R/3 Custom Configuration & Implementation

Implementing R/3 requires a team of IT specialists and business users. For the enterprise, this can result in business process re-engineering: less supervisory levels, better flow of information between business units, and a new business organizational structure. The process can be ongoing – change can be continuous. Applications from R/3 are usually implemented gradually in a progressive implementation, rather than everything implemented at once.

The R/3 System is highly configurable to suit the operations of the enterprise. SAP has provided tools to model business processes, configure the system, and manage the process.

The R/3 Procedure Model provides guidance through the different project phases step by step (from project generation to going live). A wide range of tried-and-true, graphically portrayed business scenarios and processes are stored in the R/3 Reference Model, from which the best possible processes can be chosen. The R/3 Procedure Model uses the following tools:

  • IMG (Implementation Management Guide) of R/3 – acts as a project management system, providing a plan of activities. It recommends a sequence for configuring and customizing the system, and supports documenting the project.
  • SAPoffice – stores, edits text and graphical information. It also links to standard PC office products such as word processing and spreadsheets.
  • Business Navigator - provides a graphical view of business processes and functions.

The R/3 Analyzer is a set of tools for selecting from the R/3 system the standard business programs that are needed for a particular enterprise. The results can be displayed in a graphical or list form. R/3 Analyzer prompts users to perform steps in the proper order.

The R/3 Reference Model is a tool that is provided to support configuration activities. It contains over 1,000 business processes that describe the functions of the R/3 System, and provides over 100 basic business scenarios. Five views are provided by the Reference Model:

  • Process view – a network of event-driven process chains
  • Function view – a summary display of the business functions required of R/3
  • Information flow-view – for information flow between event-driven process chains
  • Data view – clusters of data structures required for the business processes
  • Organization view – the relationships between the organizational units of the enterprise

The configuration that is chosen by the users is represented by parameters in tables; the R/3 tools create the tables as the users specify their requirements, without the need to modify any software. Requirements that are not available in the standard R/3 Reference Model are documented by the tools, but must be programmed with the ABAP/4 language (with the ABAP/4 Development Workbench). Thus the enterprise can extend, and have their own version, of the R/3 Reference Model.

With Release 4.0, a business component can be implemented independently of the release of R/3. Thus the entire system does not need to be implemented or upgraded simultaneously.

SAP has also provided AcceleratedSAP (ASAP) as a methodology and tools for more rapid implementation of R/3. With Release 4.0, the Business Engineer draws upon the Reference Model to provide guidance through the implementation, in analyzing, designing and configuring the business processes. The Business Engineer can be used in a graphical or tabular form and is the recommended method of implementing or maintaining R/3.

top

7. Sources

Downloadable pdf files through SAPs Internet emedia site: http://emedia.sap.com/usa/default.asp

  • R/3 Technology Infrastructure 4.0
  • R/3 System SAP Technology Infrastructure
  • mySAP.com Frequently Asked Questions
  • mySAP.com Application Hosting - Zero to E-Commerce in Nothing Flat
  • The SAP Internet Strategy - Turning Internet Promises into Profit

Other downloadable SAP pdf files: from http://wwwext03.sap.com/usa/aboutsap/ selecting SAP R/3:

  • SAP R/3
  • R/3 System Release Strategy

August 1999 News Release: http://wwwext03.sap.com/usa/press/1999/Aug99.asp

  • EnjoySAP enhances user efficiency and enjoyment

Books:

  • Using SAP R/3 Third Edition , ASAP World Consultancy, 1999 Que
  • Getting Started with SAP R/3, Denis L. Prince, 1998 Prima Publishing

For questions or comments about this file contact Peter Pille ppille@acs.ryerson.ca

February 10, 2000

Posted by 디오디오