Sunday, 23 February 2014

SCN Workflow notes

Referencing BOR objects in ABAP OO classes

Skip to end of metadata
Go to start of metadata

How do I know I'm ready for this?

This is number 7 in a series of blogs on ABAP OO for workflow, so you it would be a really good idea to make sure you have worked through the first 6 blogs. The examples we'll use here continue on from those we used in the earlier blogs.
Here's the list of the earlier blogs:
  1. Why use ABAP OO with Workflow?
  2. Getting started with ABAP OO for Workflow ... using the IF_WORKFLOW interface
  3. Using ABAP OO with Workflow Tasks
  4. Raising ABAP OO events for Workflow
  5. Using ABAP OO attributes in Workflows and Tasks
  6. Using functional methods in Workflows and Tasks

Which is better ABAP OO or BOR?

Clearly ABAP OO is far superior to BOR - much quicker for development, much more flexible, much less specialized - but if you are still asking this question now might be good time to go back and read the first blog "Why Use ABAP OO with Workflow?"

Why would you need to use BOR and ABAP OO together?

The main reason for using BOR and ABAP OO together is to access provided SAP business objects for the content. Although newer workflows are now being written using ABAP OO for Workflow - such as Leave Request/Cancellation, and HR Admin Services forms - much of the existing content was originally written using BOR and has not yet been converted to ABAP OO. Whether BOR content is ever converted to ABAP OO depends on the priorities of the specific development area so you should NOT wait for old content to be converted.
A secondary reason is because even though you are mainly working in ABAP OO you still want to raise events using a technique that does not yet support ABAP OO for Workflow. E.g. Status management events do not provide an ABAP OO option as yet (SAP NetWeaver 7.00 - July 2007).

How do you access a BOR object from an ABAP OO class?

The best approach is to access the BOR object as an attribute of your ABAP OO class. For our ZCL_PLANT example we have been using in the previous blogs, there is an older equivalent BOR object BUS0008. To link the BOR object to our ZCL_PLANT class we need to:
  1. Create a constant with a prefilled type for the BOR object
  2. Create an attribute for our BOR object
  3. Fill the attribute value at runtime with the key of the BOR instance
  4. Reference the BOR object in our workflows/tasks
A constant is just an attribute of a class with the level "Constant" (instead of "Instance" or "Static"). The prefilled type can be created in a number of ways - you could use a type-pool or just use a direct entry type. A type-pool has the advantage of allowing you to collect all such prefilled types into one place, however for our example a direct entry type is adequate.
Here you see the constant C_BO_BUS0008 as an attribute of the example class ZCL_PLANT. By pressing the "Direct Type Entry" button we see the initial code: constants C_BO_BUS0008 value . "#EC NOTEXT
We need to change this to match the structure of the dictionary type SIBFLPORB but with the category always set to "BO" (BOR object) and the type always set to "BUS0008" (our chosen BOR object type). Of course the instance is left empty as we will not know the key value of our BOR object until runtime. CONSTANTS: BEGIN OF c_bo_bus0008, instid TYPE sibfboriid VALUE IS INITIAL, typeid TYPE sibftypeid VALUE 'BUS0008', catid TYPE sibfcatid VALUE 'BO', END OF c_bo_bus0008.
The attribute must use the dictionary type SIBFLPORB. Use your constant as the initial value of your attribute.
Note: This initial value is critical to using the BOR object in workflows and tasks. Without it, workflows and tasks will not be able to guarantee what BOR type will be available at runtime, and will therefore only be able to access the generic attributes/methods of the root BOR object OBJECT, instead of the attributes/methods of the chosen BOR object type.
Referencing the BOR object in your workflows and tasks is just the same as referencing an attribute of an ABAP OO for Workflow object. So this is the easy part.

Do I still need to use BOR macros in ABAP OO classes?

You will still need to use BOR macros in your ABAP OO classes if and only if you want to call BOR attributes and methods in your ABAP OO methods.
If you need to do this then make sure you include the BOR macro definitions in your class by putting the special include program <cntn02> in the "Macros" section of your ABAP OO class. You can then use the usual workflow macros such as swc_get_property and swc_call_method in your ABAP OO methods. Note: I'm not going to discuss the use of these macros here - there's plenty of existing material and tutorials in the SAP Library help, in published books on SAP Workflow and in SDN blogs and forums.

Should I extend & delegate BOR objects - or do all my extensions in ABAP OO?

Having worked with both BOR and ABAP OO for Workflow for some time now, my strong recommendation would be to do all extensions in ABAP OO. The only exception to this is additional events on BOR objects if you are stuck with using BOR objects for eventing.
I have even found it quicker and more effective to rewrite some of the provided SAP content in ABAP OO rather than use the existing content. For example the EMPLOYEET and BUS1065 employee objects both use HR Structural Authorizations, which is often more of a hindrance than a help in workflows where workflow heavily controls access to the data anyway. So I have often created my own ZCL_EMPLOYEE class to provide equivalent functionality using function module BAPI_EMPLOYEE_GETDATA to extract the necessary employee details, and which gives the option of bypassing the HR Structural Authorizations where appropriate.

What do I do about existing workflows based on BOR?

There's no need to convert existing workflows as such. However if you need to create a new workflow or make extensive changes to an existing workflow I would strongly recommend you consider converting to ABAP OO.
If you are part of an upgrade project this is always a good time to consider reworking from BOR to ABAP OO, if only to widen the pool of developers able to maintain code called by your workflow - as of course any ABAP OO developer can work with ABAP OO for workflow.


***********************************************************

SAP Workflow EVENTS

Skip to end of metadata
Go to start of metadata
Unknown macro: {gliffy}
Event 
An occurrence of a change of state in an object, which is published throughout the system.
An event is an object type component. The list of possible events is defined with the relevant object type in the Business Object Builder. This list can be extended according to customer requirements using the delegation concept. The actual creation of the events added must be catered for. Events can start, terminate or continue tasks and workflows. Examples of events are:
  • Invoice entered
  • Purchase order released
Triggering Event
Event whose occurrence starts a task or a workflow. The event must be entered as a triggering event for the task or workflow that is to be started. The event linkage must be activated. A task or workflow can have several triggering events. Information from the event creation context can be passed in the binding from the event container to the task container or workflow container. The event must be defined as an object type component in the Business Object Builder.
Use of the event
You use an event in a workflow under the following circumstances
  • In a task definition or in the version-independent basic data of a workflow as a triggering event.
  • In task definiton as a terminating event.(The task is terminated when ever a event is occured)
  • In version dependent basic data of the workflow.
  • In a workflow defintion for steps of types  Event Creator and Wait for event.
A event is created from any application program. Multiple receivers are possible for a event. When ever you want to use a event in your workflow then that particular event must be defined in the appropriate Business Object (Object Type) or in the Business Class (ABAP classes that are supported by workflows).
Start Workflow by Triggering a event
You can start a workflow when a event is triggered by specifying the business object and its associated event in the basic data of the workflow.
In the Basic data of the workflow we can even specify the name of the class and its related event as the triggering event.

*************************************************************************

What are advantages of SAP Business Workflows?

A business process can consist of several steps. Historically, the
tasks have been coordinated manually or by some informal means
of communication (sticky note, e-mail, shouting, and so on).
The common problem in these approaches is :
  • Inefficiency
  • Each lacks a way to trace where a task is
  • Who executed(or is executing it),
  • How much time it requires.
In contrast, the workflow ensures that the right work is sent to the right person at the right time in the right sequence with the right information.
  • Workflow is a tool for automization of business processes
  • Not tied up to any particular application
  • Operates uniformly across applications
  • Coordinate all participating tasks
  • Provide users with active support
  • Deadline Management is possible
Workflows are very useful for business processes that:
  • Contain a sequence of activities.
  • Reoccur in the same or similar forms.
  • Involve several people or groups of people.
  • Require considerable coordination.
back to top

What are the layers in Workflow Architecture?

There are 3 layers in the Workflow Architecture:
  • Business Object
  • Business Process
  • Organization Model
back to top

How Process, Business Logic and People are linked in Workflows?

  • The business processes are defined in Workflow builder. Each and every small work process is called as an activity in the workflow builder. Each activity consists of a single step task, which can be a standard task or a workflow template.
  • Associated Business Logic is built in Business Objects. i.e. ABAP code will be in Business Object. Business Objects consist of attributes, methods and events. Methods consist of ABAP code. Each and every standard task is associated with a Business Object and a method.
  • People / Group of people responsible for taking actions are defined in organization structure. Person responsible for taking an action is called actual agent. It is defined in the workflow activity.
back to top

What is a Business Object?

Business object (BO) is basically collection of Attributes, Methods and Events for a particular business entity. Example of BO: Sale Order, Vendor, Customer, Material etc.
BOs wrap around backend tables, application code, change document and other technical information and expose them as Attributes, Methods and Events. Usually methods of BOs refer to BAPIs.
The following diagram explains BO much better:

back to top

What is an Agent and what are different types of Agent?

An agent is a person or a group of persons who can take an action during workflow runtime. Action can be approval of some business document, creation of some document or sending email.
There are basically three types of Agents:
  • Actual Agent: One who actually takes the action. This is provided in the workflow Activity.
  • Possible Agent: All possible persons/entities that can execute a task during runtime. Defines either in Org Structure or task.
  • Excluded Agents: Persons who are excluded from taking action on a task. These are assigned in the workflow definition at the workflow activity.
System checks Actual Agent defined in workflow runtime with the Possible Agents defined in the task and the Excluded Agents. Actual Agent should be a subset of Possible Agents minus the Excluded Agents, else Agent resolution fails.
back to top

What are the capabilities of Workflow Builder?

back to top

What are Events?

Events are actions that occur in the system and that acts as trigger point for any workflow. Eg. Sales order creation. is an event.
Eg; Consider a scenario where any sales order after creation subject to approval from superior. So here a workflow comes into play. The workflow needs to start whenever a Sales order is created. The business object BUS2032 is associated to sales order creation. It has event CREATED. So the trigger point or " START EVENTS " in the workflow is the BUS2032 's event CREATED.
Then bind the event to the workflow so the data flows from event to the Workflow. e.g.: Sales order is created. So for the workflow to proceed it'll need sales order details. With binding the respective values is mapped ito the workflow container.
Then activate the linkage once you are through the workflow creation. This is important as after this only the workflow will listen for the event, in the sense that after this only the workflow is triggered on the event. This is critical also as each active link adds to system load considerably and too many workflows in the test environment can bring the system down. So careful. Deactivate once test is over and workflow is no longer used.
back to top

What are the various methos of creating Events?

The various metods of creating Events are:-    
-          Function module  - event creation by calling function module
                                               SWE_EVENT_CREATE  or  SAP_WAPI_CREATE_EVENT.
-          Change documents
-          Event creation when change documents are written.
-          General status management
-          Logistics Information System (LIS)
-          Event  creation upon status changes.
-          Business Transaction Events
-          Message Control
back to top

How can an Event be linked with a Workflow ?

Consider the start of any workflow. The START EVENTS tab is taken through the header. The Business Object is specified and binding is generated to the workflow to receive the values and then the link is activated.See the pic below for the Sales Order creation as start event for a workflow.




**************************************************************************




 Step Types
This Essentials guide does not discuss the workflow design, but only the A BA P part of workflow programming. Nevertheless, this section provides a brief summary of Possible workflow steps.

Activity
This step executes a single workflow task. You usually embed a standard task (task beginning with "TS") here that refers to a BO R method or an ABAP Objects class method.
A simple example o f this step type is the sample workflow template WF_Verify038 for BO R methods and the workflow template WF_Verify048 for ABAP Objects classes.

Subworkflow
This step is generated as a normal activity (IB), but a workflow template (template beginning with "W S") is defined instead o f a standard task. This changes the icon in the graphical Workflow Builder to H.
A simple example o f this step type is the sample workflow template WF_Verify039 and the workflow template WF_Verify020 .

Condition
This step evaluates a condition using container elements o f the workflow container. This condition has two exits, TRUE and FALSE.
A simple example o f this step type is the sample Workflow template WF_Verify022 .

Multiple Condition
The value o f a workflow container element determines which branch in the workflow template is selected. Workflow branches don't have to be defined for every possible value. You can also use a branch for  O t h e r V a l u e s (O THERS).
A simple example o f this step type is the sample Workflow template WF_Verify010 .

User Decision
The SAP Business Workplace provides a list o f predefined selection options. Each option corresponds to a branch in the workflow template.
You can find an example o f this technology in the Workflow template WF_Verify002 .

Undefined Step
You can use an undefined step as a placeholder fo r future steps during development (prototyping).
You can find an example o f this step type in the workflow template WF_Verify002.

Container Operation
The use o f constants and content o f the workflow container enables you to fill additional elements in the workflow container via assignments.
You can find an example o f this technology in the Workflow template WF_Verify042.

Event Creator
A n event is generated. The event container is filled from the workflow container.
You can find examples o f this technology in the workflow templates WF_Verify0 4 2
and WF_Verify043.

Wait Step (Wait for Event)
The Workflow Engine waits to complete this step until it receives a certain event.
You can find an example o f this technology in the Workflow template WF_Verify043 .

Document from Template
A document is generated from a template. During this process, specific placeholders in the text are replaced w ith workflow container content.
You can find an example o f this technology in the Workflow template WF_Verify018.

Fork
This workflow step enables you to generate multiple branches in the workflow template. These branches are processed in parallel. You have to define the number of parallel branches and determine how many o f these branches have to be fully processed before the system closes the parallel area and continues with processing the "norm al" workflow template. Alternatively, you can formulate an end condition that completes the parallel area.
Simple examples o f this step type are the workflow templates WF_Verify008 and WF_Verify009.

Process Control
This step enables you to manipulate the execution of a work item or an entire workflow . You can cancel work items or define them as "obsolete."
Exam p les o f this step type include the workflow templates WF_Verify012, WF_Verify013 , and WF_Verify014.

Loop (U N T IL/W H ILE )
A step sequence is processed several times. The termination criterion is checked either at the beginning (W H IL E ) or at the end (U N T IL) o f the loop.
You can find examples o f these loop technologies in the workflow templates WF WF_Veri fy023 and WF_Veri fy024.

Send Mail
The system sends the entered text as an SAP email. For sending external emails, however, further administrative SAP Basis activities need to be carried out.
You can find an example o f this technology in the Workflow template WF_Verify032.


Form
Container elements o f the workflow container are displayed or entered in a form.
A simple example o f this step type is the sample Workflow template WF_Verify029.

Block
Blocks enable you to model a group o f steps collectively and define deadline monitoring for the group's processing.
A rather complex example o f this step type is the sample workflow template WF_Verify050 for dynamic sequences.
You can find another complex example o f exception handling in blocks in the workflow template, WF_Verify046.

Local Workflow
Local workflows are "free" blocks. The Workflow Builder displays them next to the actual workflow template. You start local workflow s via events. You can also store them as modules in you r workflow template so that you obtain a workflow design with components.
A simple example o f this step type is the sample Workflow template WF_Verify042.

Web Activity
Selected container elements are generated as X M L binding and transferred to a web server. This enables you to call a SOAP Web service from the Workflow .
The most obvious example o f this step type is the sample workflow template WF_Verify101.

Ad hoc Anchor
This step type enables an authorized group o f persons to intervene in a running workflow. Here, the anchor is w here one o f several predefined workflow templates is displayed as a subWorkflow.
This is a quite complex workflow technology and makes sense only in a few revision scenarios.

**************************************************

Secondary Methods, Before and After Methods

Skip to end of metadata Go to start of metadata
This page will tell how to implement the three methods in workflow designing.
  • Secondary Methods.
The purpose of secondary methods is to open a new session when ever a work item is executed.  For example you are team lead having team of 6 peoples. The leave requests are submitted by your team members for approval. So before approving the request you goto a another report to check leave plan of rest of the members of your team. Based on this the decision for workitem approval or rejection is taken. So rather than approver each time going to this transaction the workflow will automatically open a new session which will run this report. This can be done by secondary methods. Each time you execute work item a new session will open up. This will only get finished if the work item gets finished.
  • Before Methods
Before methods can be used in case you want to perform some activity for example for inserting some entry in custom table  before execution of work item.
  • After Methods.
After methods can be also used for same purpose as before method. Basically both of these can be used to track work items which can be used later.
Screen shots with examples to be updated next

Synchronous methods allow for directly returning export parameters to the calling program, and this program can then evaluate the triggered exceptions.

Asynchronous methods cannot return export parameters, because the responsibility for executing the actual program was handed over to an update task

SAP DATA DICTIONARY QUESTIONS:



  1. What are the layers of data description in R/3?
·            The external layer.
·            The ABAP/4 layer.
·            The database layer.
  1. Define external layer?
The external layer is the plane at which the user sees and interacts with the data, that is, the data format in the user interface.  This data format is independent of the database system used.
 
  1. Define ABAP/4 layer?
The ABAP/4 layer describes the data formats used by the ABAP/4 processor.
 
  1. Define Database layer?
      The database layer describes the data formats used in the database.
 
  1. What is a Data Class?
The Data class determines in which table space the table is stored when it is created in the database.
 
  1. What is a Size Category?
The Size category describes the probable space requirement of the table in the database.
 
  1. How many types of size categories and data classes are there?
There are five size categories (0-4) and 11 data classes only three of which are appropriate for application tables:
·        APPL0- Master data (data frequently accessed but rarely updated).
·        APPL1- Transaction data (data that is changed frequently).
·        APPL2- Organizational data (customizing data that is entered when system is configured and then rarely changed).
The other two types are:
·            USR
·            USR1 – Intended for customer’s own developments.
 
  1. What are control tables?
The values specified for the size category and data class are mapped to database-specific values via control tables.
 
  1. What is the function of the transport system and workbench organizer?
The function of the transport system and the Workbench Organizer is to manage any changes made to objects of the ABAP/4 Development Workbench and to transport these changes between different SAP systems.
 
  1. What is a table pool?
A table pool (or pool) is used to combine several logical tables in the ABAP/4 Dictionary.  The definition of a pool consists of at least two key fields and a long argument field (VARDATA).
 
  1. What are pooled tables?
These are logical tables, which must be assigned to a table pool when they are defined.  Pooled tables can be used to store control data (such as screen sequences or program parameters).
 
  1. What is a table cluster?
A table cluster combines several logical tables in the ABAP/4 Dictionary.  Several logical rows from different cluster tables are brought together in a single physical record.  The records from the cluster tables assigned to a cluster are thus stored in a single common table in the database.
 
  1. How can we access the correction and transport system?
Each time you create a new object or change an existing object in the ABAP/4 Dictionary, you branch automatically to the Workbench Organizer or correction and transport system.
 
  1. Which objects are independent transport objects?
Domains, Data elements, Tables, Technical settings for tables, Secondary indexes for transparent tables, Structures, Views, Matchcode objects, Matchcode Ids, Lock objects.
 
  1. How is conversion of data types done between ABAP/4 & DB layer?
Conversion between ABAP/4 data types and the database layer is done within the database interface.
 
  1. How is conversion of data types done between ABAP/4 & external level?
Conversion between the external layer and the ABAP/4 layer is done in the SAP dialog manager DYNP.
 
  1. What are the Data types of the external layer?
ACCP, Char, CLNT, CUKY, CURR, DATS, DESC, FLTP, INT1, INT2, INT4, LANG, LCHR, LRAW, NUMC, PREC, QUAN, RAW, TIMS, UNIT,VARC.
 
  1. What are the Data types of the ABAP/4 layer?
Possible ABAP/4 data types:
C: Character.
D: Date, format YYYYMMDD.
F: Floating-point number in DOUBLE PRECISION (8 bytes).
I: Integer.
N: Numerical character string of arbitrary length.
P: Amount of counter field (packed; implementation depends on h/w platform).
S: Time Stamp YYYYMMDDHHMMSS.
V: Character string of variable length, length is given in the first two bytes.
X: Hexadecimal (binary) storage.
 
  1. How can we set the table spaces and extent sizes?
You can specify the extent sizes and the table space (physical storage area in the database) in which a transparent table is to be stored by setting the size category and data class.
 
  1. What is the function of the correction system?
The correction system manages changes to internal system components. Such as objects of the ABAP/4 Dictionary.
 
  1. What are local objects?
Local objects (Dev class$TMP) are independent of correction and transport system.
 
  1. What is a Development class?
Related objects from the ABAP/4 repository are assigned to the same development class.  This enables you to correct and transport related objects as a unit.
 
  1. What is a data dictionary?
Data Dictionary is a central source of data in a data management system.  Its main function is to support the creation and management of data definitions.  It has details about
·            what data is contained?
·            What are the attributes of the data?
·            What is the relationship existing between the various data elements?
 
  1. What functions does a data dictionary perform?
In a data management system, the principal functions performed by the data dictionary are
·            Management of data definitions.
·            Provision of information for evaluation.
·            Support for s/w development.
·            Support form documentation.
·            Ensuring that the data definitions are flexible and up-to-date.
 
  1. What are the features of ABAP/4 Dictionary?
The most important features are:
·            Integrated to aABAP/4 Development Workbench.
·            Active in the runtime environment.
 
  1. What are the uses of the information in the Data dictionary?
The following information is directly taken from the Data dictionary:
·            Information on fields displayed with F1 help.
·            Possible entries for fields displayed with F4 help.
·            Matchcode and help views search utilities.
 
  1. What are the basic objects of the data dictionary?
·            Tables
·            Domains
·            Data elements
·            Structures
·            Foreign Keys
 
  1. What are the aggregate objects in the data dictionary?
·            Views
·            Match codes
·            Lock objects.
 
  1. In the ABAP/4 Dictionary Tables can be defined independent of the underlying database (T/F).
True.
  1. ABAP/4 Dictionary contains the Logical definition of the table.
  2. A field containing currency amounts (data type CURR) must be assigned to a reference table and a reference field. Explain.
As a reference table, a system containing all the valid currencies is assigned or any other table, which contains a field with the currency key format.  This field is called as reference field.  The assignment of the field containing currency amounts to the reference field is made at runtime.  The value in the reference field determines the currency of the amount.
 
  1. A field containing quantity amounts (data type QUAN) must be assigned to a reference table and a reference field. Explain?
As a reference table, a system table containing all the valid quantity units is assigned or any other table, which contains a field with the format or quantity units (data type UNIT).  This field is called as reference field.
The assignment of the field containing quantity amounts to the reference field is made at runtime.  The value in the reference field determines the quantity unit of the amount.
 
  1. What is the significance of Technical settings (specified while creating a table in the data dictionary)?  By specifying technical settings we can control how database tables are created in the database.  The technical settings allows us to
·            Optimize storage space requirements.
·            Table access behavior.
·            Buffering required.
·            Changes to entries logged.
 
  1. What is a Table attribute?
The table’s attributes determine who is responsible for maintaining a table and which types of access are allowed for the table.  The most important table attributes are:
·            Delivery class.
·            Table maintenance allowed.
·            Activation type.
 
  1. What is the significance of Delivery Class?
·            The delivery class controls the degree to which the SAP or the customer is responsible for table maintenance.
·            Whether SAP provides the table with or without contents.
·            Determines the table type.
·            Determines how the table behaves when it is first installed, at upgrade, when it is transported, and when a client copy is performed.
  1. What is the max. no. Of structures that can be included in a table or structure.
Nine.
 
  1. What are two methods of modifying SAP standard tables?
·            Append Structures and
·            Customizing Includes.
 
  1. What is the difference between a Substructure and an Append Structure?
·            In case of a substructure, the reference originates in the table itself, in the form of a statement include….
·            In case of an append structure, the table itself remains unchanged and the reference originates in the append structure.
 
  1. To how many tables can an append structure be assigned ?
One.
  1. If a table that is to be extended contains a long field, we cannot use append structures why?
Long fields in a table must always be located in the end, as the last field of the table.  If a table has an append structure the append line must also be on the last field of the table.
 
  1. Can we include customizing include or an append structure with Pooled or Cluster tables?
No.
  1. What are the two ways for restricting the value range for a domain?
·            By specifying fixed values.
·            By stipulating a value table.
 
  1. Structures can contain data only during the runtime of a program (T/F)
True.
  1. What are the aggregate objects in the Dictionary?
·            Views
·            Match Code.
·            Lock Object.
 
  1. What are base tables of an aggregate object?
      The tables making up an aggregate object (primary and secondary) are called aggregate object.
 
  1. The data of a view is not physically stored, but derived from one or more tables (t/f)
True.
 
  1. What are the 2 other types of Views, which are not allowed in Release 3.0?
·            Structure Views.
·            Entity Views.
 
  1. What is a Match Code?
      Match code is a tool to help us to search for data records in the system. Match Codes are an efficient and user-friendly search aid where key of a record is unknown.
 
  1. What are the two levels in defining a Match Code?
·            Match Code Object.
·            Match Code Id.
 
  1. What is the max no of match code Id’s that can be defined for one Match code object?
A match code Id is a one character ID that can be a letter or a number.
 
  1. Can we define our own Match Code ID’s for SAP Matchcodes?
Yes, the number 0 to 9 are reserved for us to create our own Match Code Ids for a SAP defined Matchcode object.
 
  1. What is an Update type with reference to a Match code ID?
If the data in one of the base tables of a matchcode ID changes, the matchcode data has to be updated.  The update type stipulates when the matchcode is to be updated and how it is to be done.  The update type also specifies which method is to be used for Building matchcodes.  You must specify the update type when you define a matchcode ID.
 
  1. Can matchcode object contain Ids with different update types?
Yes.
 
  1. What are the update types possible?
The following update types are possible:
·            Update type A: The matchcode data is updated asynchronously to database changes.
·            Update type S: The matchcode data is updated synchronously to database changes.
·            Update type P: The matchcode data is updated by the application program.
·            Update type I: Access to the matchcode data is managed using a database view.
·            Update type L: Access to the matchcode is achieved by calling a function module.
 
  1. What are the two different ways of building a match code object?
A match code can be built in two different ways:
·            Logical structure: The matchcode data is set up temporarily at the moment when the match code is accessed. (Update type I, k).
·            Physical Structure: The match code data is physically stored in a separate table in the database. (Update type A, S, P).
 
  1. What are the differences between a Database index and a match code?
·            Match code can contain fields from several tables whereas an index can contain fields from only one table.
·            Match code objects can be built on transparent tables and pooled and cluster tables.
 
  1. What is the function of a Domain?
·            A domain describes the technical settings of a table field.
·            A domain defines a value range, which sets the permissible data values for the fields, which refers to this domain.
·            A single domain can be used as basis for any number of fields that are identical in structure.
 
  1. Can you delete a domain, which is being used by data elements?
No.
  1. What are conversion routines?
·            Non-standard conversions from display format to sap internal format and vice-versa are implemented with so called conversion routines.
 
  1. What is the function of a data element?
A data element describes the role played by a domain in a technical context.  A data element contains semantic information.
 
  1. Can a domain, assigned to a data element be changed?
Yes.  We can do so by just overwriting the entry in the field domain.
 
  1. Can you delete data element, which is being used by table fields.
No.
 
  1. Can you define a field without a data element?
Yes.  If you want to specify no data element and therefore no domain for a field, you can enter data type and field length and a short text directly in the table maintenance.
 
  1. What are null values?
If the value of a field in a table is undefined or unknown, it is called a null value.
 
  1. What is the difference between a structure and a table?
Structures are constructed the almost the same way as tables, the only difference using that no database table is generated from them.
 
  1. What is a view?
A view is a logical view on one or more tables.  A view on one or more tables i.e., the data from a view is not actually physically stored instead being derived from one or more tables.
 
  1. How many types of Views are there?
·            Database View
·            Help View
·            Projection View
·            Maintenance View
 
  1. What is Locking?
When two users simultaneously attempt to access the same data record, this is synchronized by a lock mechanism.
 
  1. What is database utility?
Database utility is the interface between the ABAP/4 Dictionary and the underlying the SAP system.
 
  1. What are the basic functions of Database utility?
The basic functions of database utility are:
·            Create database objects.
·            Delete database objects.
·            Adjust database objects to changed ABAP/4 dictionary definition.
 
  1. What is Repository Info. Systems?
It is a tool with which you can make data stored in the ABAP/4 Dictionary available.