Thursday, September 27, 2007

ABAP TIPS

hi
this is swamy to give you some tips in abap faqs-


ABAP FAQ

ABAP Frequently Asked Question

Q: Will so many ABAP books; are there any good ABAP books available?

A: One good ABAP books worth buying is available from Amazon is :
ABAP Objects: Introduction to Programming SAP Applications with CDROM

Q: I have some other ABAP question, where can I ask it?

A: Well, consider joining a ABAP forum.

Q: Is ABAP program client dependent or independent?

A: Independent.

Q: What is the difference between modifications and enhancements?

A: Modification, we are modifying which is already exists, In enhancement we are adding additional functionality.

Q: What type of objects exists in the data dictionary?

A: Data in data dictionary is not the actual data like emp.name.name or emp.address but rather a type data whose function is to define the properties of the data, such as type, length, and relationship.

Q: Explain the concept of asynchronous update?

A: When you change data of one table the sy-subrc is returned. And then updation of other affected tables takes place.
So if system fails to update other tables still sy-subrc returned is 0 (ie, When first table gets updated).

Q:What components does a dynpro consists of?

A: Number of screen. Length(4)

Q: What is the difference between data elements and domain?

A: Data element
ABAP/4 Development Workbench (BC-DWB)
A data element describes the contents of a field. For example, a data element contains the F1 help texts and the key
word texts (field texts) for displaying the field on the screen.
Several table fields with identical contents can refer to the same data element.

Domain
ABAP/4 Development Workbench (BC-DWB)
A domain describes the technical attributes of a table field.
These technical attributes include the data type and the field length.
Several fields with the same technical attributes can refer to the same domain. In this case, each of these fields has
the technical attributes specified in this domain.

Q:What are the main elements of a status?

A: 1. Usage data
2. SAP data
3. Host data
4. SAP system data
5. Database data.

Q: How many lists can exist in parallel in an interactive reporting?

A: In the interactive reports, we can create as many as 21 lists.
The first list is called 'Basic list' and all the successive lists are called 'Secondary lists'.
Each list is again an interactive.

Q:What are the 3 main events in interactive reporting?

A: 1. Top-of-page during line selection.
2. At line-selection
3. At user-command

Q: What is IDOC and when, how to use it ?

A: IDOC is one of the EDI(Electronic data interface). It is used as a format modifier.

Q: Is there any standard SAP report which gives a count of the number of times a program is executed ?

A: Try transaction STAT

Q: When we create a customer the information is updated in structure RF02D and the some tables like KNA1 are
updated. How can we find the tables for master data transactions?

A: Go to ABAP Workbench -> Overview -> application hierarchy - SAP -> follow the customizing based tree for your
application. Double click on a lowest hierarchy level to get for the correct marked development class. Here you can
find all the tables, views, logical databases etc. used for a system operation.

Q: How can we use CAD with SAP ?

A: Third party tools from Eigner + Partner provide interfaces to SAP. Another third party software - Fastlook Plus from
Kamel Software enables you to view all of the Autocad formats.

Q: How can I access SAP through Internet?

A: SAP has its own Internet transaction Server (ITS). Other products include Haht, WebObjects, NetDynamics etc. Each product has its' own architecture.
However to access the database, access paths SAP GUI or RFC Channel have to be used.

Q: How can we transport the standard text?

A: Refer note 3355 in OSS for a complete explanation. The SAPscript objects that should be transported must be written in a
transport request.
The entries are as follows:
R3TR FORM NAME (NAME = Name of the layout set)
R3TR STYL NAME (NAME = Name of the style)
R3TR TEXT OBJECT,NAME,ID,L
(OBJECT = Text object, NAME = Text name, ID = Text ID, L = Text language)
If you want to transport a number of texts, you can use report RSTXTRAN to insert the individual text keys into a
correction.
The transport request must be entered and released via the transport system.

Q: How to find what transactions a particular user was running for a given period in the past (Eg: from 1st of a month )

A: You may use the transaction - STAT.

Q: We want protect/lock a field so that only selected people can change the value while others can only read. How to set
the authorizations?

A: Create an authorization object for change mode. Loop at screen in the user exit and set input to 0. Check the user based
on sy-uname and the authorization. Decide whether input should be 0 or 1.

Q: How to lock an user defined transaction for some time during which no user can access the same?

A: Use transaction SM01. Scroll through the transactions and check against the transaction to be locked. And after the
maintenance is over, go back to SM01 and uncheck the same to unlock.

BDC

Q: Our ABAP program is working properly in Foreground. Can I schedule it for background processing on the weekend?

A: SAP standard program RSBDCSUB helps you to schedule the job. Create a variant for RSBDCSUB with the BDC
session name.

Q: How can we send a mail to the user intimating him that his report/BDC is completed in background?

A: You can use FUNCTION RS_SEND_MAIL_FOR_SPOOLLIST
If Unix is being used, you may send a report to any internet mail with the following:

REPORT ZSNDMAIL .
DATA: COMND(200) type c.
DATA: RESULT(200) type c occurs 100 with header line.
PARAMETERS: FILE(60) type c lower case default '/sapdata/sd_outbound/testmail.dat'.
PARAMETERS: SUBJECT(60) type c lower case.
PARAMETERS: EMAIL(60) type c lower case.
INITIALIZATION.
TRANSLATE EMAIL TO LOWER CASE.
START-OF-SELECTION.
TRANSLATE EMAIL TO LOWER CASE.
CONCATENATE 'cat' FILE '| elm -s "' subject '"' email into comnd seperated by space.
CALL 'SYSTEM' ID 'COMMAND' FIELD comnd 'TAB' FIELD UNIX_RESULTS-*SYS*.
Loop at Results.
write: /1 results.
endloop
end-of-selection.

SAPScript
Q: We get the total number of pages as expected by using 'SAPSCRIPT-FORMPAGES' in a duplex layout. In our case
duplex case is always 'Terms & Conditions'. We do not want the number of pages as in duplex printing. What is the best
possible solution?

A: On the Terms & Conditions page, Change the Page counter mode to 'HOLD' to keep the page counter from incrementing
when you print the Term & Conditions.

Q: Can I Print a logo on an Invoice?

A: Save a Logo using Paintshop Pro or Corel Draw as Tiff file. Use RSTXLDMC to convert the logo to standard text in SapScript. When the program is executed, the path and file name have to be correctly specified.

Process could be like the following:
Run RSTXLDMC
Enter file name C:\MAIL\COMPLOGO.TIF
Resolution for Tiff file
Absolute X-position
Absolute Y-position
Absolute positioning
Reserved height
Shift to right
UOM = CM
Text title
Line width for text = 132
Text name ZHEX-MACRO-COMPLOGO
Text ID ST
Text language = E
Postscript scaling
Width & Height according to PS scaling
Number of Tiff gray levels (2,4,9) 2
Then Create a new window 'COMP' with attributes;
Window COMP description Company Logo
Window type CONST
Left margin 7.00 CH window width 10.00 CH
Upper margin LN window height 8.00 LN
Finally in the text element , mention
/: INCLUDE 'ZHEX-MACRO-COMPLOGO' OBJECT TEXT ID ST LANGUAGE 'E'.
Please note that if object name is not indicated as 'ZHEX...', the logo may not be printed!
You will not be able to see the logo in a test print. The same will be printed in actual printout.
If you are using two logos in the same layout, the names of the logos should be unique. Say 'ZHEX-MACRO-LOGO1' and
'ZHEX-MACRO-LOGO2'. Else all the information will be overwritten.
If the logo is not EXACTLY TIFF 6.0 , the same will not be printed.
See OSS notes 5995, 18045, 39031 for some inputs.

RFC
Q: We want to move a SAP table to an Access table using TABLE_EXPORT_TO_MSACCESS_RFC
Importing parameters are
DBNAME
DEST
FLG_APPEND
FLG_POPUP
LANGU
The table has three columns:
TABNAM
MANDT
SDATA
We have no Exporting parameters.
How shall we set the parameters?

A: Install the PS utilities, which are part of SAPGUI install CD. You may run report RIACCESS from SE38.
Go to SALE -> Communication -> Define RFC Destination. Setup two RFC destinations PS_ACCESS_1
and PS_ACCESS_2 and will have to get them to point to wdpsastr.exe and wdpsatab.exe respectively. Then
execute RIACCESS and choose PS_ACCESS_1 to generate access tables. Please note that Access only supports
tables with up 255 fields.

Q: We want an RFC do the following transactions - MB1A, MB1C,>MB01 (goods receipt/issue).

A: Call the RFC INBOUND_IDOC_PROCESS with IDOC_CONTROL and IDOC_DATA. The structure in the
field sdata in the IDOC_DATA are e1mbxyh and e1mbxyi.

Transports
Q: In a Dev instance, we want to transport a modification to a layout set from one client to another. What is the best way?

A: use transaction SE71. Choose Utilities->Copy from Client. Layout sets need not be transported between clients ,
via transport requests DEVKxxxxxx.

Q: We need to keep track of the transports that need to flow through to other systems (ie, DEV, TST, TRN, PRD etc).
Is there a way do this?

A: SAPCRAFT enables you to control the CTS from DEV system. This keeps track of all transports at all stages and
enables you to allocate Import, export and Authorization functions to specific user.

Tables
Q: We specify the logical database. And we want a field that is not present in any of the tables defaulted in logical
database. How can we want to add this additional field from a different table?
A: . Presume you have a logical database
table 1
table 2
table 3
Define the required field as additional field say fld of table 1, table 2 or table 3
and then in the code section define.
Perform get_f1d(zxxxxxxx) using f1d.
Form zxxxxxxx could be like;
Form get_f1d using f.
Select * from where 'conditions'
f = table4 - f1d.

Q: We need to download an internal table to the Presentation Server(local workstation). Whenever we run the program, the
same file has to be saved as a separate file in sequential order. Ex: 0001.txt, 0002.txt etc. Where can we store the last file
number?

A: SAP has a table TVARV for storing the variants.
A record may be created in TVARV for all the programs that require this kind of incremental records.
For Ex: the record could be 100Zmm10001 MM sequence rec where first part consists of client code and the program being
run. Client code is required because TVARV does not has a field for client code. The second part is the description indicating
the purpose what the record is created. This entire string may be posted in the Name field (char - 30).
The Type field ( char- 1) may be populated with P or S (Parameter or Selection)
Low field (char- 45) may be populated with '0001' when run first time and increment it by one in your program for
downloading of the internal table.

Batch input / Direct input
Q: We are calling transaction VL01 in batch input to create deliveries using a program for delivery due list. How ever we
are unable to create deliveries for transport stock orders. Why?

A: Batch-inputs can not be used to fill the "delivery due list" screen because it is not a dynpro. This is a standard SAP report.
A SAP report (check with "System -> Status") may be called using SUBMIT sentence with the appropriate options .
It is preferred to call a report than create a Batch-input program.

Q: What are some sample Direct input data transfer programs?

A: In MM for Material Master data - RMDATIND
FI - for Accounting Documents - RFBIBL00
PP - for Independent requirements - RM06IN00
CA - for Classification data - RCCLBI03


SAP MM FAQ

SAP Material Management Frequently Asked Question

Q: Is there any available SAP MM Configuration Books?

A: Currently, there is only one MM configuration books which can bought from Amazon :
The book title is : Instant Access: Sap Reference for Materials Management

Q: I have some other Materials Management question, where can I asked it?

A: Well, consider joining a MM forum.

Q: How can I extend all material to a new plant?

A: The SAP program - RMDATIND is used to create /update material master record.

Q: How can we delete materials permanently from Material master?

A: Use transaction MM70 - Material Master->Other->Reorganization->Material->Choose.
Build variant with selection range of material master records to be selected for deletion and maintain
run parameters.
Execute.
Use transaction MM71 - Material Master-> other-> Reorganization--->Material->Reorganization
Build a second variant
Maintain run parameters and execute.
It is also important to remove the records manually from info record, POs, PRs, reservation etc
for successful deletion of the material.

Q: SAP only provides moving average value for current, previous period, and previous year. SAP
does not provide transactions/reports that will provide moving average value for a given date.
How can I report moving average price for material number 10000000 at plant 0001 on July 4,
1998
.

A: Try any of these solutions:
1. Change the updating level of the structure (S031) to "daily". In LIS the total value and the total
stock are available. Divide value by the stock. It is possible to calculate this dynamically when
the analysis is run and to display the result.
2. Create your own structure in LIS and populate it by copying the Moving Average Price from the
material master every time there is a transaction. You will have data on those days when there
was a transaction.

Q: We have defined all the variables for the materials. However, when I attempt to use Material
Matchcode object MAT1, I get the response "No possible entries found". Why?

A: Matchcode i.d. "B", "Material by bill of material" has a selection condition for field STLNR NE ' '.
STLNR is the BOM number associated with a material in table MAST. Hence the message - "no
possible entries..." pops up if there are no bills of materials associated with your material numbers.
You get the matchcodes as long as the material referred by you has BOM number associated with
it.

Q: The matchcode object selection is defaulted to matctcode ID "B". Iwould like to change to M "
Material by Description" What is the solution?

A: Press the pull down arrow on the material number field and matchcode "B" is displayed, press
F5 double-click matchcode i.d. "M", then press F6 . This will set matchcode "M" as the default.

Q: We have one material master : X and the unit of measure is 'pcs' and two serial number : A,B
For this material we make two Pos
First PO calls material X , 1 pcs price 100 (will use serial number A)
Second PO calls material X , 1 pcs price 250 (will use serial number B)
Goods Receipt is done and by filling serial number for the fist PO with A and the second PO
with B.
We want to transfer material X serial number A to another plant and want the valuation of this
material as 100. How we can do it ?

A: Use "split valuation". Stocks may be received into separate storage locations. Transfer stocks may
be done from a storage location/plant to another storage location/plant.

Q: We want to change the calculation of Moving Average Price. We know that the same is in
MBEW-VERPR and two transactions to consider - MRHR, MB01. Is there a transaction to
change MAV or all the places it is needed?

A: Any Goods receipt or issue (in case of split valuated material) changes Moving Average price
depending upon the valuation type which is used when posting the goods issue. You have to go
through all the transactions involving those!
For Example:
Material X is using split valuation by origin:
Malaysia : MAV 60 USD - total stock 100 units
India: MAV 50 USD - total stock 200 units
Total stock 300 units MAV 53.33
Here , goods issues will also affect the global MAV, despite not changing MAV from origin
country.

Q: What is the use of configurable material.?

A: Configurable material is useful if you have a large number of combination of parts that go into a
product. It means different permutations and combinations of the parts for same material. If you
maintain a unique material code for each combination , you require a large number of material
numbers. KMAT may be used in such a case where you maintain just one generic product code.
A super BOM is maintained for such a material consisting of all possible alternatives. A routing is
also maintained consisting of all possible operations that could be used. Typically configurable
material is used in Made To Order (MTO) environment. However frequently ordered
configurations may be planned with a material variant which needs to have a material master record.
Thus Material variants may have stock and value. Depending upon characteristic values chosen at
sales order entry Sales Order BOM is created. Routing operations are also chosen depending upon
which BOM components are assigned to them.

Q: Will Source List automatically appear in Material Master as default if maintained at plant level
using OME5?

A: If you have maintained source list requirement in OME5 and have not maintained the source list
for the material. PO cannot be released. You are required to maintain source list for all materials
in the plant where the indicator is set if you maintain source list at plant level. Else you can make use
of info record to do so automatically.

Q: We have One company with a plant and another company with a sales organization. Which is better
option between these - PO or Stock Transfer Order ?

A: Cross company Stock Transport Orders can be done.

  1. Configure using transaction OMGN.
  2. Depending upon the sending and receiving plants, maintain sales organization and customer data
    in customizing.
  3. Maintain the supplying plant as a vendor and attach the plant to the vendor in the Vendor Master.
  4. Material type has to be HALB or HAWA.
  5. Ensure that the company with sales Organization has a plant to take care of stocking.
  6. The PO used is NB and not Stock Transfer PO.
  7. Configure SD for inter-company billing to enable picking up the pricing procedure for billing.
  8. Carry Out delivery through process delivery due list and billing through process billing due list.


Q: We can make field mandatory. We want to make a default value to a Particular field in the Material
Master. Say, We want that the period indicator in the MRP2 view as "P". What is the best way?

A: Use transaction variant. Transaction SHD0 and then Transaction SE93.

SAP Workflow

Q: The following is set up for workflow:

1.Workflow organization Structure with 2 positions is created and assigned a person to both positions
2.Assign tasks to agent
TS 00007986 Requisition release - TO JOBS
TS 00008014 Purchase requisition release refused - GENERAL
TS 00008018 Requisition released - GENERAL
TS 00008348 Requisition release reset - GENERAL
WS 00000038 Workflow for purchase requisition release - TO JOBS
3.Activate event linkage
WS 00000038 Workflow for purchase requisition release
WE BUS2009 RELEASESTEPCREATE Purchase requisition Release step create is activated
4.Activated release codes for workflow
[1= Role resolution with group, code, and plant (T16FW)]
5.Assigned release codes to agent (JOBS created in 1)
The following error appears
"Work item 60772: Linkage to object BUS2009 event REJECTED cannot be written ".

A: Use transaction SWE2. Make sure "object BUS2009 event REJECTED" is enabled.


SAP PP FAQ

SAP PP Frequently Asked Question

Q: Where can I find any SAP PP Books for reference?

A: There ONLY one SAP PP books available which can be found in Amazon is :
Administering SAP R/3: The Production and Planning Modules

Q: I have some other Production Planning and Control question, where can I asked it?

A: Well, consider joining a PP forum.

Q: How to configure the planning calendar for the ATP calculation where goods are shipped every other working day?

A: Use Transaction MD25 and define calculation rule for every other working day. Check the lot size settings in OMI4 and
maintain relevant data in MMR.

Q: We have two different production lines with different operations. One production line works 5 days a week and the
other 7 days a week. The factory calendar is assigned to the plant for 5 days a week. This calendar is checked when
MRP is run.
How can we assign 5 day a week and 7 days a week against a factory calendar to the related resources? Is it possible to
have two types of calendars?

A: Assign factory calendars to the work centers.

Q: What is the difference between by-product and co-product and how do you differentiate them in a BOM?

A: In case of Co-product costs are settled with a apportionment structure. In case of By-product the price of this by-product
is credited to the order or the material stock account of the lead material being manufactured. Co-Product as well as
by-product are defined as BOM Components/Items. Both of them have negative quantities. ( Not all negative quantity
items fall under these categories!). When BOM is created for FERT , you can see one indicator in COMPONENT
DETAILS screen for co-product. You need to define the co-products with this special indicator .

Q: What are some important tables used in PP ?

A: For orders:
CUAFVD dialog structure for order headers and items

AFPO - Order item
AFFLD Order: Dialog table for order sequences (AFFL)

MOPER Operation for production order
KBED Capacity requirements

AFRU Order completion confirmations
RESB Reservation/Dependent Requirements
AFFHD Structure of PRT's in orders
SOPER Sub-operations

SAFRU Sub-operation confirmations
SKBED Capacity requirements for sub-operation

MRP table is MDTB.
For PI:
CAUFV - AFVC Operation within an order

AFFT Order Process Instructions
AFFV Order process instruction values

Some other tables of interest:
PLKO, MAPL , PLAS.

Bills Of Material

Q: We have a BOM - 'A' with two packing materials 'X' and 'Y'. For 1000 units of 'A', 1 packing material of 'X' is required
and for 50 units of 'A', 1 packing material of 'Y' is required. Base quantity of 'A' is defined as 1000. How can I define
'X' & 'Y' or in fact 'A'?

A: Make the base quantity of 'A' as 5000. The resulting component quantities would be 5 of 'X' and 100 of 'Y'.

Work Centers

Q: Can we have more than 6 standard values in standard value key?

A: One way to achieve this is to create another operation step using the same work center. However this shall be with a
control key that is not a milestone. When the milestone operation is confirmed, the previous operations up to the next
milestone are automatically confirmed. To get the desired number of standard values , all the 'non milestone' steps can
be built depending on the need.

Routing

Q: Can we use same routing for materials undergoing the same process/operations? Can we avoid separate routing for each
and every material produced?

A1: Presume that there are 50 products and the fabrication shop uses a set of 10 machines. If all these products use the same
settings of the machines, Reference Operation Sets (task list type S) can be setup for common processes that use the
same work centers. However costing, scheduling and capacity will be affected if each product has different setup time and
Reference Operation sets can not be used.
A routing for each material number ( type N or R) has to be set up and within that routing, the Reference Operation Set
can be used.
However you can by try utilizing the KMAT material and product variants invariant configuration to avoid separate routing
for each material.

A2: You may create a routing group. Go into routing creation and enter the plant and the group name. If you want you may
name the group , else name is assigned by internal counter). Create the routing with the work centers, operation times, etc.
Go to the "Header overview" screen and click on the "Mat Alloc" screen. Fill in the blanks with all the material masters
that use this routing.

Q: Scheduling times can be defined in the material master record by;
# entering the in-house production time. This value can be updated from the routing by the system.
# entering the setup, tear down, processing, and interoperation times. If these values are maintained, the system
determines the in-house production time on the basis of lot size.
How do you get the system to update this value from the routing?

A: In routing, carry out scheduling. Go into the routing operation overview and follow Extras -> Scheduling -> Results. The
pop-up window displays the scheduling data. At the bottom there is a pushbutton to copy the scheduling data to the
material master Check this push button to update master data.

Q: We have deleted a group key in an operation in routing and the same does not appear for this routing (CA02). But we
noticed that entries are maintained in table PLPO and the deletion indicator is not set. How does the system remember this
deletion of group key?

A: You may look at the tables PLKO, MAPL and PLAS.

Sales & Operations Planning

Q: We defined SOP in months. However during SOP transfer to demand management, our independent requirements are
appearing in weeks. How can we correct this from weeks into months ?

A: Check transaction OMPA for general split. OMPS - based on the MRP group. Ensure that MRP group assigned to the
material. Delete any allocations in these tables. Then periods will be transferred to Demand Management with the same
splits as in SOP. Also check whether the value of period is set as "month" at your plant level in Transaction 'OMP7'

Demand Management

Q: Sales quantities in SOP for certain days are transferred into Demand Management and are shown as planned independent
requirements. We need to keep the settings in SOP and change the periods in Demand Management? We would like to
have a rolling horizon, for ex: the following 4 weeks on a daily basis, after that on a monthly basis. What is the best way to
do this?


SAP WORKFLOW FAQ

SAP WorkFlow Frequently Asked Question

1. Is there a good book about this subject?

Yes, "Practical Workflow for SAP - Effective Business Processes using SAP's WebFlow Engine" by Alan Rickayzen, Jocelyn Dart, Carsten Brennecke, Markus Schneider. Available from Amazon.

2. How do I convince my company to use workflow?

Feedback from user groups emphasizes that although the competitive advantage gained by using workflow eclipses the financial savings, it is the financial savings that are the deciding factor when obtaining support from senior management. Projects getting the blessing at the CEO level are much easier to manage, and far more likely to reach their goal within the project time frame.
So plan well, and don't neglect the business case.

Because the following questions deal with the financial case in more detail, this section will finish by listing the competitive
advantages.

The quality of the process is assured by pushing the relevant information together with links to related transactions
directly to the user. Managers don't have the time to search for information so give them what they need to reach the correct
decision.

Cycle time is reduced by pushing the process directly to the users. The users receive notification of a task immediately
and can even be prioritized by the system.

The tasks are performed consistently and diligently by the users. The workflow system pushes all the necessary
information needed to perform a task, including a clear description of what has to be done, how to do it and the impact this
task has on the business process for your company. At any time, the user can check the list of tasks pending and
determine at a glance which are the important tasks, and which tasks can be completed the next day without any negative
impact.

The process instance is transparent. Any user can check at any time how far the process has progressed and which
stage the process has reached. For example the call center can immediately see the status of a purchase order, an
employee requisitioning a purchase would see at a glance if a colleague has been sitting on it for too long, the ad hoc notes
made when approving an engineering change request are visible long after the request has gone into production.

The process is flexible, allowing it to be changed on the fly without retraining everyone involved. The description
accompanying the change takes care of on-the-fly process improvements.

Deadline handing ensures that users perform the tasks within the time planned. Escalation measures ensure that the
failure to meet a deadline can be corrected by other means.

Intelligent reporting highlights the weaknesses of a process. Often there is a simple cure to such weaknesses such as
reeducating the users involved in the bottleneck or providing additional information (automatically). The difficulty of a
non-automated process is identifying such bottlenecks.

The process definition is transparent. You can see at a glance how the process works and who will be selected to
perform the different tasks. Think of the workflow as the process book. If you can spot the pattern and define the process
without headaches, you can create a workflow definition effortlessly. However, don't forget that if a company has business
processes that are erratic and lack a consistent pattern, the company is very likely to be losing a lot of money in terms of
lost contracts, labor intensive administration and low customer confidence. It is my personal opinion that automating exactly
this type of processes will yield the best returns, but only if you limit yourself to automating the basic skeleton of the
process first. Don't get bogged down in the detailed exception handling. That can be done in the next phase once you've
checked the process statistics and determined which exceptions are worth tackling.

As with most software the reasons for automating business processes are primarily to increase the competitive edge of your
company and to cut costs. Although the increase in competitively gained by radically reducing process times is by far the most
insignificant gain from workflow, you should not ignore the cost savings. The cost saving calculations are needed by upper
management in order to approve workflow projects. This upper management signature will be very useful in different phases of
the project and cannot be underestimated.

3. How do I calculate the cost saved by workflow?

Calculate the cost of the manual process in terms of man hours. Don't neglect the time spent gathering information. Ask the
following questions:

Is the user forced to log into different systems, or scan through printed documentation....?

Does a skilled user spend time on parts of a task, where less skilled (less expensive) user could do the groundwork? I.e.
Can a single task be split into skilled and unskilled tasks to free the skilled worker for work where his/her skills are really
needed?

Is time spent researching the progress of a process (usually done by someone not involved in the process directly)?

Is time spent determining who to give the task to next?

Probably the most significant cost will the be the cost of failure?

How often does the process fail?

What is the real cost of failure? Loss of a contract? Loss of a customer? Law suit?

If the failure can be rectified, how labor intensive is it?

4. What are typical costs saved by workflow?

A manually processed accounts payable invoice will cost about 25 USD. After workflow enabling about 15 USD (one example based on customer feedback from a user group meeting).

5. What are typical reductions in processing time caused by workflow?

A traditional paper based approval process involving three people will typically take seven days to complete. The automated
process will take one day (results based on customer feedback).

6. What do customers say are the strengths of SAP WebFlow?

WebFlow is the internet functionality of SAP Business Workflow. Based on customer feedback from the various regional users
groups, the main strengths of SAP Business Workflow are:
Robust production workflow system, (upgrade continuity with the rest of the SAP system, versioning, scalability, no
gluing....)
Standard workflow templates delivered by SAP can be used out-of-the-box or tweaked to deliver the optimum business
process for your company. Workflows can be up and running including training in under a day (thanks to the knowledgeware
delivered as part of the template packet).
Seamlessly integrated into the SAP environment, be it R/3, Business to Business Procurement, CRM, APO,
mySAP.com.... Examples of integration are:
Business Reporting (WIS),
Context sensitive availability at any time through the system menu (available anytime, anywhere)
More and more standard SAP functionality is being provided by using SAP Business Workflow so your homegrown
workflows fit the landscape exactly,
More and more workflow functionality is available directly within the SAP transaction or Web MiniApp.

WebFlow is becoming more and more important because companies are no longer being judged by their own performance but
by the combined performance of the company AND its partners. In other words it is not enough that the business processes
within your company run smoothly and faster than your competitors. You have to ensure that the processes between you and
your partners are also as fast, efficient and flexible as possible. WebFlow delivers this.

7. How are users notified about their work pending?

The users are informed by a work item which you may think of as being very like an e-mail. The difference is the work item
contains intelligence and by executing the work item you will be taken to the form or SAP transaction that makes up the step in
the workflow. This form or transaction could be a decision, a request for information or a request for confirmation that a particular task has been performed.
The work item is usually accompanied by a description of what has to be done, where to refer to when assistance is needed
(help desk, intranet...) and a summary of information about the business object or process which enables the operator to attack
the task immediately.

This work item can be received and executed in MS OutlookÒ, Lotus NotesÒ, mySAP Workflow MiniApp or the SAP integrated inbox. If this is not enough, the workflow system can transmit e-mail notifications directly to any mail system, informing the user of the need to log in to the SAP system to execute the task. The e-mail notification is done on a subscription basis so that users can de-subscribe from this service if they already check their work item inbox regularly.

8. What is workflow reporting is available and is it useful?

Standard workflow reports exist which allow the administrator to check statistics such as the frequency and average duration of
the workflow processes. However the real strength of the workflow reporting is that it allows reports to be configured which
analyze the process statistics in combination with the data involved within the workflow process and the organizational units
associated with the process. For example you can determine the average time invested in a failed contract renewal request, the
time taken to create material masters in different plants or the frequency of rejected purchase requisitions on a department to
department basis. Often, big reductions in cost or cycle time can be obtained without touching the workflow definitions.
Reeducating a particular group of users or incorporating supplementary information in a work item description can often cause
dramatic improvements on the cycle times of particularly critical subsets of the process. It is not unusual that this may have a
big impact on specific products, plants or organizational units. This will show up in the WebFlow reporting in LIS or the Business Warehouse but it might not show up in traditional statistical workflow reporting. Even though the average time does not change significantly, the impact on costs and profit can be dramatic.

9. How do I choose who to distribute the tasks to?

A work item is assigned to one or more users. Whoever reserves or executes the task first wins and the work item vanishes
from the other users' inboxes. This eliminates the need to assign the user to one single user. I.e. No need for complicated
algorithms to determine which single user will receive the work item and no need to worry about what will happen when one user is ill for the week (also taken care of by sophisticated substitution mechanisms which can be linked to the SAP organizational model).

Tasks can be assigned to an organizational unit but the strength of the workflow system is to enable business rules which
select users according to the data being processed. For example, you might have one group of users associated with one
quality notification type. The workflow can be configured to query the QM module directly to determine the users. You can define fallbacks using the default role associated with a task and allow agents to be specified on the fly by a supervisor.

Tasks can be assigned to office distribution lists which is useful when you want your users to subscribe or unsubscribe to a
particular task. A typical use of this would be where you have a work rote or want to reduce user maintenance to an absolute
minimum. The users subscribe or unsubscribe by joining or leaving an office distribution list (one mouse click).

10. What happens when a deadline is missed?

This depends on your workflow definition. In the simplest case an e-mail is sent to another user by the system (typically your
supervisor so watch out!). However in more sophisticated scenarios a missed deadline can redirect that path that the workflow
takes. One customer uses deadlines to automatically make an approval if the deadline is missed (at about the eighth approval
level!!!). This gives the user the chance to make rejections but does not force him/her to go into the system to approve the other 99.9% of the requests. In safety critical environments the workflow might trigger off preventative action when a deadline is missed or might put other processes on hold. There is no limit as to how you can use this functionality.

11. What deadlines can be monitored?

Many different types of deadlines can monitored. At the single workflow step level you can define deadlines which trigger when
the work item has not completed within a certain time and other deadlines when no one starts working on the work item within a given time. You can specify the task deadline statically (e.g. 1 week) or dynamically (e.g. 1 week for material type A and 2
weeks for all the other materials). The offset can be related to the step (e.g. you have 1 week to complete this step) or related to the process (e.g. complete within 2 weeks of the complete process starting, irrespective of how long your colleagues have
hogged the previous steps).

Last but not least, deadlines can be set for sub-processes, which is often more important than the deadline of a single step in a
workflow.

12. How can I check the status of a workflow?

This is one of the very cool features of SAP Business Workflow. You can usually navigate directly from the business object to
check the workflow progress. For example, while viewing a purchase order you can select "workflow" from the system menu or toolbar and you will see a list of workflows related to the purchase order. Usually just one, but if you have created a few of your own and these have been triggered you will see the status of these too. And that is not all. You also see a simplified summary of all the steps that have taken place so far including who performed them, when they were executed and which ad hoc notes were attached.

13. How are workflows triggered?

Workflows can be triggered automatically by changes in the system or manually by an operator. Manually triggered workflows
are good for processes that remedy a problem the operator has noticed or for dealing with a forms-based requests (E.g. my PC won't boot). Automatically triggered workflows are useful because the operator does not even have to be aware of the workflow's existence to trigger it. In addition to triggers embedded in transactions there are also generic triggering mechanisms such as a change in the status of a business object or a change in the HR data. Irrespective of how the workflow is triggered, it is linked to the business object as described in the previous answer and can be tracked easily. Because WebFlow is part of the basis system, this triggering is reliable and easy to implement.

Workflows may be triggered by events but this is not essential. The event-handling makes it easy to trigger workflows from
transactions and system changes without you having to make modifications. If you are creating your own report or transaction
which triggers a workflow, avoid events and trigger the workflow directly with the WAPI function call. This is particularly important when triggering a workflow from outside the SAP system. This method reduces flexibility (the workflow ID is hard-coded) but increases performance if this is an issue (we're talking about 50 000 work items a day here!).

Any exception handling workflows that are intended to be triggered manually can be triggered from the system menu when
viewing the relevant transaction. The SAP system has the intelligence to suggest workflows that can be triggered manually
based on the authorization of the operator and the context that the operator is working in. No additional customizing is needed
here.

14. What open interfaces are supported?

The most significant interface supported is the Wf-XML standard from the Workflow Management Coalition. This is an
independent organization of which SAP is a funding member, along with most other major workflow vendors. The Wf-XML
interface is based on XML and allows workflows from different vendors to communicate with each other. A detailed description of the interface is available on the WfMCs web site at www.wfmc.org.

15. What is Wf-XML used for?

Although a company is far better off workflow enabling their system with SAP WebFlow when SAP software is used anywhere within the process, a collaborative process can take place between partners using different software platforms employing different workflow systems. To support SAP customers in this situation, WebFlow offers the open interface Wf-XML. This allows Business Processes enabled using different tools to communicate and control each other. Any workflow tool offering this interface can connect up with other tools that also offer this interface.

Wf-XML is the only open interface for supporting interoperability of business processes, independent of what the business
process being integrated.

16. Where does Wf-XML come from?

Wf-XML comes from the Workflow Management Coalition, an independent body of workflow vendors, customers and higher
education establishments.

17. How does the workflow call procedures from non-SAP systems?

The Actional control broker integrates directly into SAP WebFlow enabling proxy objects to be called directly from the workflow step. When called, the proxy method will make a call to the outside system either as a background task or as a dialogue step.

These proxy objects are generated in the SAP system using a converter which converts the objects interface (DCOM,
CORBA...) to the SAP syntax. A syntax converter also lets developers view any object in any of the participating systems in the developer's preferred language.

About R/3 and SAP Inst’process

(Category) ISDS Department FAQ : (Category) SAP R/3 :
Installation of the SAP Gui Frontend

To install the SAP Graphical User Interface follow the steps below:
 
(Download) Gui_Selection (12.8 K)
 
1. Insert CD into CDRom drive
2. Open Windows Explorer and switch to CDRom drive
3. Change to subdirectory GUI\Windows\Win32
4. Start program setup.exe
5. SAP installation starts: Close all programs, hit ‘Next’ - button (first window)
6. Choose ‘Local installation’ and hit ‘Next’ - button
7. Accept destination folder
8. Select ‘SAPgui’ only and hit ‘Next’ - button
9. Finish installation procedure
 
 
To establish a connection to the ISDS SAP R/3 Training System use the following parameters:
 
- Start SAP Logon
- Hit the 'New' button
- Enter Description ´DEV´
- Enter Application Server ´130.39.100.124´
- Enter System Number ´00´
- Hit ´OK´-button and logon.
 
(Download) Connection_to_Server (14.8 K)

[Append to This Answer]

ukuete1@lsu.edu, ctorto1@lsu.edu

Next:

(Answer) SAP @ LSU Facts

This document is: http://docu.bus.lsu.edu/cgi-bin/fom?file=14

[Search]

[Appearance]

This is a Faq-O-Matic 2.712.

This FAQ administered by ...


(Answer)

(Category) ISDS Department FAQ : (Category) SAP R/3 :
Useful SAP Admin Transaction Codes

- Database -
DB24    Monitor, Logs
DB13    Planning, Archive
 
 
- Cost-based optimizer -
DB13    Statistics update
 
 
- SAP Administration -
SM37    Active Jobs
SM02    System message to all
SM04    User list
SSAA    System Administration Agent
CCMS    Computer Center Management System
RZ04    Operations Mode and Instances
RZ03    Control Panel, Server statuses
SU01    User maintenance
 
 
- Command Prompt Administration -
sapcheck     Check of SAP-System
sappfpar     Profile-Check --> command: i.e. sappfpar DEV_DVEBMGS00 check
sapmmc       Sap Management Console (Display profiles, response times, ...)
 
 
- Starting Procedure - Profiles -
Startprofile          start_dvebmgs00_sid
DB-Startprofile       strdbs.cmd
Message Server        msg_server.exe (All in EXE – subdirectory)
Application Server    disp+work.exe (Dispatcher)
Default-Profile       …\sys\profile\default.pfl
 
 
- Tracefiles / Error Handling Procedure -
Analyse errors --> usr\sid\dvebmgs00\work
1. Analyse tracefiles regularly (Message Server + Dispatcher Trace)
2. Search for notes on the Online Service System (OSS)
3. Kernel updates
4. Message to SAP
 
 
(sap_transaction.doc)

ukuete1@lsu.edu

[Append to This Answer]

Previous:

(Answer) Error: Condition is missing (i.e. PR00 or MWST)

Next:

(Answer) Error: Version 0 is not defined for fiscal year 2002

This document is: http://docu.bus.lsu.edu/cgi-bin/fom?file=41

[Search]

[Appearance]

This is a Faq-O-Matic 2.712.

This FAQ administered by ...

Table Creation points

Bcuser The exercise is to create and manipulate the basic objects of the ABAP dictionary: Tables, data elements, and domains.

Create the YXXEMP table (replace XX with your 2 digit id).

This table will store basic information for all employees

All employees will have one entry in this table.

Step 1: Go to your development class and click the create button on the toolbar. Choose Dictionary objects. Then click the green check mark. Ö

Step 2: The Dictionary objects dialog box appears. Choose Table and type YXXEMP in the space provided (replacing XX with your 2 digit id). Then click the create button.

Step 3: The table definition screen appears. Begin by entering some of the table’s general attributes: Short text, delivery class, and whether or not table maintenance is allowed. Enter C for the Delivery Class, and click on the Tab.Maint.Allowed field.

FAQ 1: What is the primary function of the Delivery class attribute? What does a value of ‘C’ in this field indicate?

Hint: Turning on the Tab.Maint.Allowed attribute permits the table’s data to be edited by standard SAP table maintenance transactions such as SM30, SM31, and SE16.

(note: If you wish to maintain a table via transaction SM31, the table name must be five character or less).

Step 4: Next, enter the name of the first field in the table. This will be the Employee ID number. Call this field EMP_ID. Click on the key attribute to make it a primary key of this table.

Note: The names of the customer-created fields do not have to begin with a Y or a Z. Fields only have meaning within the particular table for which they are defined, and they are not individual objects within the ABAP Dictionary.

Names of customer-created tables, data elements, and domains, however must begin with a Y or a Z. tables, data elements, and domains exists as individual objects within the ABAP Dictionary.

Step 5: Next, enter the data element for this field. In this case, use a new data element called YXXEMPID (replace XX with your ID). Once you have entered the data element name, double-click on the name of the data element.

Step 6: Double-clicking on the name of the data element brings up the Create Data Element dialog box. Click the green check mark that you wish to continue creating the data element.

Step 7: Next, you see the data element definition screen. Enter a short text. This will appear beside the name of the field on the table definition screen. Then, enter YXXEMPID as the domain name.

Step 8: Next, enter the field labels at the bottom of the screen. These are the labels that will appear on end-user screens when fields are “painted” on to those screens from the dictionary. Fill in short, medium, and long field labels. It is also advisable to fill in a “header” label (which is used if the field is painted into something known as a “table control”).

Ö Maintain field labels Lg Field Label

Field label short [10] 6 Employee ID

Medium [15] 6 Employee ID

Long [20] 6 Employee ID

Header 6 Employee ID

Step 9: Next, double-click on the name of the domain that you entered in step7. Click on the green check mark in the create domain dialog box that appears.

Step 10: Enter a short text, and a data type and length for the domain. You may see the various data types by pressing F4 (function key) in the data type filed. For this domain, use type CHAR and length LO.

Step 11: Now you are ready to activate your domain. Click the activation symbol on the application toolbar. You will be prompted to enter a development class and a change request. After the domain is activated, you will see a message at the bottom of the screen, and the status of the domain change to “Active” and “saved”.

Hint: ABAP Dictionary Objects must be activated before they are visible to other objects in the system. After you make change to a dictionary object, you must re-activate it. A common mistake is to revise an object and then forget to re-activate it.

Step 12: Next, click the green arrow to return to your data element. Now that the domain has been activated, you may activate the data element. Click the activation symbol. Enter your development class and change request when prompted. You should see a message at the bottom of the screen saying that the data element as activated, and the status will change to “Active” and “Saved”.

Step 13: Click the green arrow to return to the table definition screen.

Hint: If you are unable to complete your work on a table in one sitting, save the table without activating it (make sure you are on a table definition screen). To return to the table later, go to your development class. Drill down through Dictionary objects, and then Tables, until you see the name of your table. Double-click on the table-name. This will bring you back to the table definitions screen. Enter change mode by clicking the Display <-> change button on the toolbar. To add new fields to the table, select Edit ® New fields from the menu.

Step 14: Complete the definition for the table C/XXEMP by entering the following fields, data elements, and domains. You will create your own data elements for each fields. For some fields, you will use pre-defined domains, and for other fields, you will create your own domains.

Field Name Data Element Domain Type Length

LAST_NAME YXXLNAME CHAR25 pre-defined pre-defined

FIRST_NAME YXXFNAME CHAR25 pre-defined pre-defined

HLTH_PLAN YXXHLTHPLN YXXHLTHPLAN NUMC 4

Note: The HLTH_PLAN field is to contain the ID of the health plan the employee has selected. This field will eventually point to the YXXHLTHPLN table.

Note: In reality, this table would contain more fields than this.

Step 15: Click the activation symbol. Enter your change request when prompted.

Step 16: The Maintain Technical Settings Screen will appear. Enter “USER” as the data class and ‘0’ as the Size Category. Save the technical settings and click the green arrow. You will return to the table definition screen and the table’s status will change to “Active” and “Saved”.

FAQ 2: What does the data class control? What does a value of “USER” indicate?

FAQ 3: What does the size category control? In this case, what does a value of ‘0’ represent?

Step 17: From the table definition screen, click the green arrow to return to your development class.

Hint: Sometimes a newly created object will not appear in your development class. If this happens, select Edit® Refresh Object list from the menu in the Repository Browser.

Create Additional Tables:

Create the YXXHEALTH, YXXHOURLY, YXXSALARIED, and YXXPARTNER tables. Else the following fields, data elements, and domains. The YXXHOURLY, YXXSALARIED, and YXXPARTNER tables will each have one entry for every employee assigned to that particular type of earnings. Each employee must belong to one and only one type of earning table. The YXXHEALTH table has one entry for each type of health plan to which the employees could belong.

  • Important Note: As of SAP Release 4.0, you may not have a table and a data element with same name.

YXXHEALTH

Field Name Key Data Element Domain Type Length

PLAN_ID X YXXHLTHPLN YXXHLTHPLN NUMC 4

DESCR YXXDESCR YXXDESCR CHAR 80

ANN_PREM YXXANNPREM YXXANNPREM DEC 6

PLAN_ID is the health plan ID.

DESCR is a description of the health plan.

ANN_PREM is the annual premium for belonging to this health plan.

YXXHOURLY

Field Name Key Data Element Domain Type Length

EMP_ID X YXXEMPID YXXEMPID CHAR 10

HOUR_RATE YXXHOURRAT YXXHOURRAT NUMC 4

EMP_ID is the employee ID.

HOUR_RATE is the hourly rate the employee is paid.

YXXSALARIED

Field Name Key Data Element Domain Type Length

EMP_ID X YXXEMPID YXXEMPID CHAR 10

SALARY YXXSALARY YXXSALARY DEC 8

EMP_ID is the employee ID.

SALARY is the annual salary the employee is paid.

YXXPARTNER

Field Name Key Data Element Domain Type Length

EMP_ID X YXXEMPID YXXEMPID CHAR 10

NUM_SHARES YXXNUMSHAR DEC7 pre-defined pre-defined

EMP_ID is the employee ID.

NUM_SHARES is the number of shares the partner owns.

Explicitly Limit Values for Domains.

Valid values for domains can be restricted two ways by explicitly listing (“hard-coding”) fixed values in the domain itself, and by specifying a value table.

Hourly employees are always paid between $5.00 and $35.00 per hour. Explicitly list this restriction in the domain for the hourly rate.

Step 1: Drilldown through your development class until you come to the list of domains (Dictionary objects ® Domain). Double-click on the entry for YYXHOURRAT.

Step 2: Enter change mode by clicking the Display <-> change button on the application toolbar.

Step 3: Select Goto ® Fixed Values from the menu. Click the green check mark in the dialog box that appears.

Step 4: Enter 5 as the lower limit and 35 as the upper limit. Enter a short text describing the unit ”limits on hourly wages”.

Step 5: Click the save icon to save your changes. Then click the green arrow to return to the primary domain definition screen.

Step 6: Click the activation symbol to re-activate your domain.

Limit a Domain’s Values by using a Value Table:

The only valid employee ID’s are the ones contains in the YXXEMP table. Change the YXXEMPID domain so that the value table is listed as YXXEMP.

Step 1: Proceed to the definition screen for domain YXXEMPID. Enter change mode.

Step 2: Enter YXXEMP as the value table in the space provided (about halfway down the screen).

Allowed values

Value table YXXEMP¯

Step 3: Re-activate your domain.

Similarly, the only valid health plan ID’s are those that are listed in the YXXHEALTH table.

Step 4: Modify domain YXXHLTHPLN so that the value table is YXXHEALTH. Reactivate the domain when you are finished.

Establishing a Foreign Key Relationship between the YXXEMP and the YXXHOURLY Tables.

Step 1: Proceed to the dictionary definition of the YXXHOURLTY table. Enter change mode.

Step 2: Establish a foreign key relationship to the YXXEMP table on the EMP_ID field. Be sure to specify the appropriate cardinality and foreign key field type.

Step 3: When you are finished, re-activate the YXXHOURLY table.

  • Establish Foreign Key Relationships from Table YXXSALARY, YXXPARTNER, and YXXEMP.

Step 1: Establish the following foreign key relationships.

From Table Field To Table Filed

YXXSALARIED EMP_ID YXXEMP EMP_ID

YXXPARTNER EMP_ID YXXEMP EMP_ID

YXXEMP HLTH_PLAN YXXHEALTH PLAN_ID

Manipulating existing tables, their structures, and their data.

Use of the Table Copy Capability:

Often times you must create a table and there is already a similar table on the database. In the ABAP Workbench you can create a table then copy the elements of another table into your new table. Additionally it is possible to copy complete tables and then add fields.

Step 1: using the Repository Browser, locate the table called TABNA. To do this, start the Repository Browser (TCODE SE-80). Instead of entering your development class, click the Dictionary objects radio button in the single object box at the bottom of the screen. Then click the Edit push button.

Step 2: Click the Table radio button. Enter TABNA as the table name.

Step 3: Click the copy icon on the toolbar, or select Development object ® copy from the menu. In the dialog box that appears, enter YXXTABNA as the new table name. Then click the green check mark.

Step 4: Enter your development class and change request when prompted.

FAQ 1: To what development class does the original TABNA table belong?

Step 5: Using the Repository Browser, navigate to your development class to ensure that YXXTABNA was created correctly.

Hint: You may need to refresh the object list in the Repository Browser.

Creating Indexes:

Step 1: In the employee table (YXXEMP), there is often a need to access records by employee name. To improve the efficiency of this process, create a secondary index on the last name and first name fields. (Create one index that sorts by last name, then by first name).

Adding data to your table:

Use tools ® ABAP Workbench ® Overview ® Data Browser.

TCODE-SE16 to add records to your health plan and employee tables.

Step 1: Create two fictitious health plans. Given them ID’s names (descriptions) and annual premiums.

Step 2: Create three fictitious employees. Make one a partner, one a salaried employee and one an hourly employee. Give each one appropriate pay information (you will need to access four tables: YXXEMP, YXXPARNER, YXXSALARIED and YXXHOURLY).

Note: It is also possible to add entries to a table by accessing the table through your development class. Go into the ABAP Dictionary change table/structure fields screen and choose menu option utilities ® create Entries.

Create an Address Structure:

Your employee table, YXXEMP, does not yet contain information about employees address. Because address information is likely to be stored in several tables (for example, in customer and vendor tables as well as the employee table), you will create a structure to provide the appropriate field definition. That structure can then be included into the employee table, as well as into any other tables where it may be needed in the future.

Step 1; Create the structure YXXADDR.

YXXADDR:

Field Name Data Element Domain Type Length

ADDR1 YXXADDR1 CHAR50 pre-defined pre-defined

ADDR2 YXXADDR2 CHAR50 pre-defined pre-defined

CITY YXXCITY CHAR50 pre-defined pre-defined

REGION YXXREGION CHAR10 pre-defined pre-defined

POST_CODE YXXPOSTCD CHAR15 pre-defined pre-defined

COUNTRY LANDI_GP pre-defined pre-defined pre-defined

ADDR1 is the first line of the address.

ADDR2 is the second line of the address.

CITY is the city.

REGION is the province or state.

POST_CODE is the postal code.

COUNTRY is the country.

Step 2: Activate the structure

Step 3: Include the structure YXXADDR in the table YXXEMP. Do not forget to reactivate table YXXEMP.

Add Data to YXXEMP using the structure

Step 1: Go to TCODE-SE16.

Step 2: Enter YXXEMP as the table name and click the display push button on the toolbar.

Step 3: A selection screen appears. Click the Execute push button on the toolbar (or press F8) without entering any selection criteria.

Step 4: Choose one of your entries, and then click the change push button on the toolbar.

Step 5: Notice that you now have additional fields to enter the employee’s address. Enter an address, and then save your work.

Exercise using the ABAP Repository Information System:

This facility can provide a great deal of information on objects created and maintained within SAP.

  1. Search for all tables beginning with the string KNA*.
  2. Display field list for table KNA1.
  3. Display only KNA1 fields with the string *customer* in the short description.
  4. Display all fields in the tables beginning with KNA*, with CHAR data types, lengths less than 20, and *customer* in the short description.
  5. Display all tables that use the check table UPERS.
  6. Display all search helps that begin with M*.
  7. Find a NUMC domain of field length 4, where the output length is different than the field length.
  8. Find all data elements that use domain NUMC4.

Finding tables that are related to one another:

Step 1: In the customer master tables the country key is kept in the table KNA1. Find the table where the country description/name is kept (eg., for country key US ® United States.

Note: This exercise is especially similar to the type of research you may be required to do on a project.

Hints:

  1. Concentrate on the foreign key relationship.
  2. Related tables are often named with same base prefix and a different suffix (i.e. TXXX, TXXXA, TXXXB would all be related text tables).

Changing a Dictionary Structure:

Step 1: Shorten the city field in your YXXADDR structure. To do this, navigate to the YXXCITY data element. Change the domain from CHAR50 to CHAR40.

Step 2: Re-activate the YXXCITY data element. You must get a warning about the length of the header label. You must get a warning about the length of the header label. If so, Press Enter to navigate past this warning.

Step 3: Next you will see a warning that dependent tables may need to be converted. Click Continue.

Step 4: Next you will see a log off messages from the database utility. These messages will tell you that it was possible to successfully alter the YXXADDR structure, but not the YXXBMP table. Click the green arrow.

Step 5: Note that the status of the YXXCITY data element is now “partially active”

Step 6: Navigate to the YXXEMP table. Re-activate the table.

Step 7: A dialog box appears, indicating that the table must be converted in the database. This is the Database Utility at work. Click the Online radio button, and then click the Adjust Push Button at the bottom of the dialog box.

Step 8: After a few moments, you should see a message (at the bottom of the screen) that the request was executed successfully. Table YXXEMP should now be “active” and “saved” again.

Step 9: Navigate to the YXXADDR structure. Its status will be “partially active”. Re-activate it.

Changing a Table Type:

Step 1: Change the type of your table YXXTABNA from transparent to structure. You may do this by selecting

Extras ® Change table type …….from the menu in the table definition screen (you must be in change mode). Do not forget to re-activate the object.