Search Results for: Abap

BC400 – ABAP Workbench Foundations | SAP TRAINING COURSES

BC400

ABAP Workbench Foundations

Solution:ABAP Creating Forms, ABAP Dialog Programming, ABAP Core, HANA Programming
Level:Details, Configuration & Transaction
Languages:English

Course announcements

  • Gain a detailed knowledge of the fundamental concepts of ABAP and learn how to comfortably and efficiently work with the ABAP Workbench tools in order to undertake custom developments with confidence

Goals

  • This course will prepare you to:
    • Learn the fundamental concepts of the ABAP programming language
    • Efficiently use the ABAP Workbench Tools
    • Create simple application programs with user dialogs (list, selection screen, screens, Web Dynpro) and database dialogs (reading from the database)

Audience

  • Developer
  • Developer Consultant
  • Help Desk / COE Support
  • Program / Project Manager

Prerequisites

Essential

  • BC100or previous programming language experience

Recommended

Course based on software release

  • ECC6.0 EHP8 SP00 / NW 7.5 SP01

Content

  • Flow of an ABAP Program
    • Describing the Processing of ABAP Programs
  • ABAP Workbench
    • Introducing the ABAP Workbench
    • Organizing ABAP Development Projects
    • Developing ABAP Programs
    • Finalizing ABAP Development Projects
  • Basic ABAP Language Elements
    • Defining Elementary Data Objects
    • Using Basic ABAP Statements
    • Analyzing Programs with the ABAP Debugger
  • Modularization Techniques in ABAP
    • Explaining Modularization
    • Defining and Calling Subroutines
    • Calling Function Modules
    • Creating Function Modules
    • Describing Business Application Programming Interfaces (BAPIs)
    • Calling Methods of Global Classes
    • Creating Global Classes and Static Methods
    • Using Local Classes
  • Complex Data Objects
    • Using Structured Data Objects
    • Using Internal Tables
  • Data Modeling and Data Retrieval
    • Explaining Data Models
    • Retrieving Single Database Records
    • Retrieving Multiple Database Records
    • Describing Other Aspects of Database Access
    • Implementing Authorization Checks
  • Classic ABAP Reports
    • Implementing ABAP Lists
    • Implementing Selection Screens
    • Implementing Events of ABAP Reports
  • Screens
    • Creating Screens
    • Creating Input and Output Fields
    • Implementing Data Transport
  • SAP List Viewer
    • Using the SAP List Viewer
  • Web Dynpro ABAP
    • Describing Web Dynpro ABAP
    • Implementing Navigation in Web Dynpro
    • Implementing Data Transport in Web Dynpro
  • Program Analysis Tools
    • Improving the Quality of ABAP Code with the Code Inspector
  • ABAP Development Tools for SAP NetWeaver
    • Describing ABAP Development Tools for SAP NetWeaver
    • Creating an ABAP Project in Eclipse
  • SAP Standard Software Adjustments
    • Adjusting the SAP Standard Software

Submit your request

Is the course not scheduled? Let us know what works for you by clicking the button below and select your Interest. We will do our best to consider your request.

Note: Location can be for a Virtual Classroom

Register Interest

BC400 - ABAP Workbench Foundations | SAP TRAINING COURSES

Very Helpfull

User Rating: Be the first one !

BC401 – ABAP Objects | SAP TRAINING COURSES

BC401

ABAP Objects

Solution:ABAP Core, HANA Programming
Level:Details, Configuration & Transaction
Languages:English

Course announcements

  • Strengthen your ABAP skills by gaining a full understanding of the use of object-oriented programming techniques, and how to apply them practically in your ABAP applications.

Goals

  • This course will prepare you to:
    • Understand the concepts of object-oriented programming
    • Develop business applications with ABAP Objects

Audience

  • Developer
  • Developer Consultant
  • Help Desk / COE Support
  • Program / Project Manager

Prerequisites

Essential

Recommended

  • None

Course based on software release

  • ECC6.0 EHP8 SP00 / NW 7.5 SP01

Content

  • Introduction to Object-Oriented Programming
    • Explaining the Object-Oriented Programming Model
    • Analyzing and Designing with Unified Modeling Language (UML)
  • Fundamental Object-Oriented Syntax
    • Creating Local Classes
    • Creating Objects
    • Accessing Methods and Attributes
    • Implementing Constructors in Local Classes
    • Implementing Class Constructors in Local Classes
  • Inheritance and Casting
    • Implementing Inheritance
    • Implementing Upcasts Using Inheritance
    • Implementing Polymorphism Using Inheritance
    • Implementing Downcasts Using Inheritance
  • Interfaces and Casting
    • Defining and Implementing Local Interfaces
    • Implementing Polymorphism Using Interfaces
    • Integrating Class Models Using Interfaces
  • Object-Oriented Events
    • Implementing Events in Local Classes
    • Implementing Events in Local Interfaces
  • Object-Oriented Repository Objects
    • Creating Global Classes
    • Defining and Implementing Global Interfaces
    • Implementing Inheritance in Global Classes
  • ABAP Object-Oriented Examples
    • Using the ABAP List Viewer (ALV)
    • Describing Business Add-Ins (BAdIs)
  • Global Classes in ABAP Development Tools
    • Developing Eclipse-Based ABAP Programs
  • Class-Based Exceptions
    • Explaining Class-Based Exceptions
    • Defining and Raising Exceptions
    • Implementing Advanced Exception Handling Techniques
  • Unit Testing
    • Unit Testing with ABAP Unit
  • Object-Oriented Design Patterns
    • Implementing Advanced Object-Oriented Techniques
    • Implementing the Singleton Pattern
    • Implementing Factory Classes Using Friendship
    • Implementing Persistent Objects
  • Runtime Type Services
    • Using Runtime Type Identification (RTTI)
  • Creation of a Comprehensive Object-Oriented Application
    • Developing a Comprehensive Object-Oriented Application

Submit your request

Is the course not scheduled? Let us know what works for you by clicking the button below and select your Interest. We will do our best to consider your request.

Note: Location can be for a Virtual Classroom

Register Interest

BC401 - ABAP Objects | SAP TRAINING COURSES

Very Helpfull

User Rating: Be the first one !

BC401E – ABAP Objects | SAP TRAINING COURSES

BC401E

ABAP Objects

Solution:ABAP Core, HANA Programming
Level:Details, Configuration & Transaction
Languages:English

Course announcements

  • Strengthen your ABAP skills by gaining a full understanding of the use of object-oriented programming techniques, and how to apply them practically in your ABAP applications.

Goals

  • This course will prepare you to:
    • Understand the concepts of object-oriented programming
    • Develop business applications with ABAP Objects

Audience

  • Developer
  • Developer Consultant
  • Help Desk / COE Support
  • Program / Project Manager

Prerequisites

Essential

Recommended

  • None

Course based on software release

  • ECC6.0 EHP8 SP00 / NW 7.5 SP01

Content

  • Introduction to Object-Oriented Programming
    • Explaining the Object-Oriented Programming Model
    • Analyzing and Designing with Unified Modeling Language (UML)
  • Fundamental Object-Oriented Syntax
    • Creating Local Classes
    • Creating Objects
    • Accessing Methods and Attributes
    • Implementing Constructors in Local Classes
    • Implementing Class Constructors in Local Classes
  • Inheritance and Casting
    • Implementing Inheritance
    • Implementing Upcasts Using Inheritance
    • Implementing Polymorphism Using Inheritance
    • Implementing Downcasts Using Inheritance
  • Interfaces and Casting
    • Defining and Implementing Local Interfaces
    • Implementing Polymorphism Using Interfaces
    • Integrating Class Models Using Interfaces
  • Object-Oriented Events
    • Implementing Events in Local Classes
    • Implementing Events in Local Interfaces
  • Object-Oriented Repository Objects
    • Creating Global Classes
    • Defining and Implementing Global Interfaces
    • Implementing Inheritance in Global Classes
  • ABAP Object-Oriented Examples
    • Using the ABAP List Viewer (ALV)
    • Describing Business Add-Ins (BAdIs)
  • Global Classes in ABAP Development Tools
    • Developing Eclipse-Based ABAP Programs
  • Class-Based Exceptions
    • Explaining Class-Based Exceptions
    • Defining and Raising Exceptions
    • Implementing Advanced Exception Handling Techniques
  • Unit Testing
    • Unit Testing with ABAP Unit
  • Object-Oriented Design Patterns
    • Implementing Advanced Object-Oriented Techniques
    • Implementing the Singleton Pattern
    • Implementing Factory Classes Using Friendship
    • Implementing Persistent Objects
  • Runtime Type Services
    • Using Runtime Type Identification (RTTI)
  • Creation of a Comprehensive Object-Oriented Application
    • Developing a Comprehensive Object-Oriented Application

Submit your request

Is the course not scheduled? Let us know what works for you by clicking the button below and select your Interest. We will do our best to consider your request.

Note: Location can be for a Virtual Classroom

Register Interest

BC401E - ABAP Objects | SAP TRAINING COURSES

Very Helpfull

User Rating: Be the first one !

D75AW – Delta ABAP Workbench SAP NetWeaver 7.0 to SAP NetWeaver 7.5 | SAP TRAINING COURSES

D75AW

Delta ABAP Workbench SAP NetWeaver 7.0 to SAP NetWeaver 7.5

Solution:ABAP Core, ABAP Dialog Programming
Level:Delta Knowledge
Languages:English

Course announcements

  • As an experienced ABAP developer, you would like to get familiar with the latest features in ABAP development. In this course, changes in the ABAP programming language and the ABAP development tools from SAP Netweaver 7.0 to 7.5 will be discussed.

Goals

  • This course will prepare you to:
    • Discover the delta features in ABAP development from SAP NetWeaver 7.0 to 7.5

Audience

  • Developer
  • Developer Consultant

Prerequisites

Essential

  • ABAP development experience on SAP NetWeaver 7.0 in both procedural and object-oriented programming

Recommended

  • None

Course based on software release

  • ECC6.0 EHP8 SP00/NW 7.5 SP01

Content

  • Introduction
    • Explaining the Innovation Drivers for ABAP and the Major Releases in SAP NetWeaver
  • The Development Environment
    • Understanding the Compiler Warnings and Suppressing them with Pragmas
    • Using the Source Code Based Class Builder
    • Enhancing Productivity through Code Completion
    • Providing a Type Ahead Search help
    • Developing with ABAP Development Tools for Eclipse (ADT)
    • Working with the New Dictionary Tools in Eclipse
  • ABAP Expressions
    • Understanding the Move from Statements to Expressions
    • Processing Strings by Using Expressions and Functions
    • Using Inline Declarations
    • Constructing Objects and Casting with Expressions
    • Assigning Values by Using Expressions
  • Internal Table Features
    • Formulating Dynamic WHERE Conditions
    • Defining and Using Secondary Keys
    • Processing Internal Tables by Using Expressions
    • Comprehending and Reducing Internal Tables
    • Defining and Processing Meshes
  • Changes to Open SQL
    • Knowing the Syntax of New Open SQL
    • Using SQL Expressions
    • Profiting from the New Join Possibilities
  • Core Data Services (CDS)
    • Knowing the Basics of CDS
    • Using Annotations
    • Using Expressions and Functions
    • Formulating Advanced Joins and Associations
  • ABAP Messaging Channels
    • Writing to and Reading from ABAP Messaging Channels
    • Using ABAP Push Channels
  • New Analysis Tools
    • Measuring Runtimes with the SAP Analysis Tool (SAT)
    • Analysing the Coding Quality with ABAP Test Cockpit (ATC)
    • Collecting Runtime Data with the SQL Monitor (SQLM)

Submit your request

Is the course not scheduled? Let us know what works for you by clicking the button below and select your Interest. We will do our best to consider your request.

Note: Location can be for a Virtual Classroom

Register Interest

D75AW - Delta ABAP Workbench SAP NetWeaver 7.0 to SAP NetWeaver 7.5 | SAP TRAINING COURSES

Very Helpfull

User Rating: Be the first one !

BC430E -ABAP Dictionary | SAP TRAINING COURSES

BC430E

ABAP Dictionary

Solution:ABAP Dialog Programming, ABAP Core
Level:Details, Configuration & Transaction
Languages:English

Course announcements

  • The course discusses the role of the ABAP Dictionary in the SAP system and its scope of functions.

Goals

  • This course will prepare you to:
    • To discuss the role of the ABAP Dictionary in the SAP system and its scope of functions.

Audience

  • Developer
  • Developer Consultant

Prerequisites

Essential

Recommended

  • None

Course based on software release

  • ECC6.0 EHP8 SP00/NW 7.5 SP01

Content

  • Introduction to the ABAP Dictionary
    • Describing the ABAP Dictionary
  • Data Types in the ABAP Dictionary
    • Creating Domains and Data Elements
    • Creating Flat Structures
    • Creating Table Types and Deep Structures
    • Creating Type Groups
  • Database Tables
    • Creating Transparent Tables
    • Defining Cluster Tables and Pooled Tables
  • Performance During Table Access
    • Creating Database Table Indexes
    • Setting Up Table Buffering
  • Input Checks
    • Creating Fixed Values
    • Defining Foreign Keys to Perform Input Checks
    • Creating Text Tables
  • Dictionary Object Dependencies
    • Differentiating Between Active and Inactive Dictionary Objects
    • Identifying Dependencies with ABAP Dictionary Objects
  • Table Changes
    • Performing a Table Conversion
    • Enhancing Tables Using Append Structures
  • Views and Maintenance Views
    • Creating Database Views
    • Creating Maintenance Views
    • Creating View Clusters
  • Search Helps
    • Creating Search Helps
    • Applying Advanced Search Help Techniques

Submit your request

Is the course not scheduled? Let us know what works for you by clicking the button below and select your Interest. We will do our best to consider your request.

Note: Location can be for a Virtual Classroom

Register Interest

BC430E -ABAP Dictionary | SAP TRAINING COURSES

Very Helpfull

User Rating: Be the first one !

BC405E – Programming ABAP Reports | SAP TRAINING COURSES

BC405E

Programming ABAP Reports

Solution:ABAP Dialog Programming, ABAP Core
Level:Details, Configuration & Transaction
Languages:English

Goals

  • This course will prepare you to:
    • Develop reports
    • Create selections screens to enter restrictions for the data retrieval
    • Implement the retrieval for data stored on one or multiple database tables
    • Display data using the SAP List Viewer

Audience

  • Developer
  • Developer Consultant

Prerequisites

Essential

Recommended

Course based on software release

  • ECC6.0 EHP8 SP00/NW 7.5 SP01

Content

  • Introduction to ABAP Reports
    • Using Standard Reports
    • Implementing a Simple List
  • Selection Screens
    • Implementing a Selection Screen
    • Implementing Multiple Selection Screens
    • Implementing Input Checks and Creating Variants
    • Modifying the Selection Screen at Runtime
  • SAP List Viewer (ALV) Creation
    • Using ALV Functionality
    • Preparing the Container Screen for an ALV Grid Control
    • Displaying Data using an ALV Grid
  • ALV Design
    • Programming Layout Variant Functionality in the ALV Grid
    • Changing the Layout of the ALV Grid
    • Adapting the Appearance of the ALV Grid
    • Adapting the ALV Grid Control using the Field Catalog
  • ALV Events and Methods
    • Handling Events of the ALV Grid Control
    • Handling Additional Events of the ALV Grid
    • Calling Additional Methods of the ALV Grid
    • Implementing Context Menus for the ALV Grid
  • Data Retrieval With Logical Databases
    • Explaining the Functionality of Logical Databases
    • Retrieving Data using Logical Databases
    • Using Advanced Functionality of Logical Databases
  • Data Retrieval Without Logical Databases
    • Reading Data from Multiple Database Tables
    • Implementing Aggregate Functions and Grouping in a SELECT Statement
    • Implementing HAVING and ORDER BY Clauses in SELECT Statements
  • The Call of Other Programs from ABAP Reports
    • Calling Programs and Passing Data
  • Background Processing
    • Performing Background Processing
  • ALV Object Model (OM)
    • Displaying Data with the ALV Object Model
    • Adapting the ALV Object Model Output
    • Adapting the Properties of an ALV

Submit your request

Is the course not scheduled? Let us know what works for you by clicking the button below and select your Interest. We will do our best to consider your request.

Note: Location can be for a Virtual Classroom

Register Interest

BC405E - Programming ABAP Reports | SAP TRAINING COURSES

Very Helpfull

User Rating: Be the first one !

BC402 – Advanced ABAP | SAP TRAINING COURSES

BC402

Advanced ABAP

Solution:ABAP Dialog Programming, ABAP Core
Level:Details, Configuration & Transaction
Languages:English

Course announcements

  • In this course, you will acquire in-depth knowledge of the advanced features in ABAP programming and understand how to apply them practically in your ABAP applications.

Goals

  • This course will prepare you to:
    • Acquire in-depth knowledge of the ABAP programming language
    • Write more robust ABAP programs
    • Assess ABAP programming techniques according to performance aspects and develop high-performance programs
    • Gain detailed knowledge in ABAP Open SQL
    • Develop dynamic ABAP programs

Audience

  • Developer
  • Developer Consultant

Prerequisites

Essential

Recommended

  • Practical programming experience in ABAP & ABAP Objects
  • BC430

Course based on software release

  • ECC6.0 EHP8 SP00 / NW 7.5 SP01

Content

  • ABAP Language Evolution
    • Explaining the Difference between Statements, Functions and Expressions
    • Describing ABAP Data Types and Data Objects
    • Selecting Data from a Single Database Table with Open SQL
  • Program Calls and Memory Management
    • Calling Programs Synchronously
    • Describing the ABAP Runtime and Memory Management
    • Using Shared Objects
  • Statements, Functions, and Expressions for Simple Data
    • Using Numeric Data Types in Arithmetic Expressions
    • Understanding Statements for Processing Character Strings and Byte Strings
    • Processing Character Strings and Byte Strings Using Functions and Expressions
  • Internal Tables
    • Using Standard, Sorted, and Hashed Tables
    • Using Special Techniques with Internal Tables
    • Using Expressions for Internal Tables
    • Using Data References and Field Symbols
  • Dynamic Programming
    • Explaining the Dynamic Programming Techniques of ABAP
    • Using Dynamic Statements and Dynamic Calls
    • Using Generic Data Types
    • Describing Data Types, Data Objects, and Objects at Runtime
    • Creating Data Types, Data Objects, and Objects at Runtime
  • ABAP Open SQL
    • Describing the Technical Background of Database Accesses with Open SQL
    • Processing and Aggregating Datasets on the Database
    • Implementing Complex WHERE Conditions and Special INTO Clauses
    • Using the Features of the New Open SQL
    • Selecting Data from Multiple Database Tables
    • Explaining Additional Techniques for Reading from Multiple Database Tables
  • Analysis and Testing
    • Defining and Activating Checkpoints
    • Using the ABAP Trace
    • Using the SQL Trace
    • Using the SQL Monitor

Submit your request

Is the course not scheduled? Let us know what works for you by clicking the button below and select your Interest. We will do our best to consider your request.

Note: Location can be for a Virtual Classroom

Register Interest

BC402 - Advanced ABAP | SAP TRAINING COURSES

Very Helpfull

User Rating: Be the first one !

BC402E – Advanced ABAP | SAP TRAINING COURSES

BC402E

Advanced ABAP

Solution:ABAP Dialog Programming, ABAP Core
Level:Details, Configuration & Transaction
Languages:English

Course announcements

  • In this course, you will acquire in-depth knowledge of the advanced features in ABAP programming and understand how to apply them practically in your ABAP applications.

Goals

  • This course will prepare you to:
    • Acquire in-depth knowledge of the ABAP programming language
    • Write more robust ABAP programs
    • Assess ABAP programming techniques according to performance aspects and develop high-performance programs
    • Gain detailed knowledge in ABAP Open SQL
    • Develop dynamic ABAP programs

Audience

  • Developer
  • Developer Consultant

Prerequisites

Essential

Recommended

  • Practical programming experience in ABAP & ABAP Objects
  • BC430

Course based on software release

  • ECC6.0 EHP8 SP00 / NW 7.5 SP01

Content

  • ABAP Language Evolution
    • Explaining the Difference between Statements, Functions and Expressions
    • Describing ABAP Data Types and Data Objects
    • Selecting Data from a Single Database Table with Open SQL
  • Program Calls and Memory Management
    • Calling Programs Synchronously
    • Describing the ABAP Runtime and Memory Management
    • Using Shared Objects
  • Statements, Functions, and Expressions for Simple Data
    • Using Numeric Data Types in Arithmetic Expressions
    • Understanding Statements for Processing Character Strings and Byte Strings
    • Processing Character Strings and Byte Strings Using Functions and Expressions
  • Internal Tables
    • Using Standard, Sorted, and Hashed Tables
    • Using Special Techniques with Internal Tables
    • Using Expressions for Internal Tables
    • Using Data References and Field Symbols
  • Dynamic Programming
    • Explaining the Dynamic Programming Techniques of ABAP
    • Using Dynamic Statements and Dynamic Calls
    • Using Generic Data Types
    • Describing Data Types, Data Objects, and Objects at Runtime
    • Creating Data Types, Data Objects, and Objects at Runtime
  • ABAP Open SQL
    • Describing the Technical Background of Database Accesses with Open SQL
    • Processing and Aggregating Datasets on the Database
    • Implementing Complex WHERE Conditions and Special INTO Clauses
    • Using the Features of the New Open SQL
    • Selecting Data from Multiple Database Tables
    • Explaining Additional Techniques for Reading from Multiple Database Tables
  • Analysis and Testing
    • Defining and Activating Checkpoints
    • Using the ABAP Trace
    • Using the SQL Trace
    • Using the SQL Monitor

Submit your request

Is the course not scheduled? Let us know what works for you by clicking the button below and select your Interest. We will do our best to consider your request.

Note: Location can be for a Virtual Classroom

Register Interest

BC402E - Advanced ABAP | SAP TRAINING COURSES

Very Helpfull

User Rating: Be the first one !

BC100 – Introduction to Programming with ABAP | SAP TRAINING COURSES

BC100

Introduction to Programming with ABAP

Solution:SAP Software, ABAP Creating Forms, ABAP Dialog Programming, ABAP Core, HANA Programming
Level:Basic Processes & Foundation
Languages:English

Goals

  • Learn simple ABAP code
  • Trace the flow of a program and troubleshoot simple problems

Audience

  • Developer
  • Developer Consultant
  • Help Desk / COE Support

Prerequisites

Essential

  • None

Recommended

  • None

Course based on software release

  • SAP ECC 6.07 (SAP NetWeaver 7.40)

Content

  • Basics of ABAP Programming
    • Developing a Simple ABAP Program
    • Introducing ABAP Syntax
    • Implementing a Simple Dialog
    • Customizing the ABAP Editor
  • Coding and Debugging in ABAP
    • Defining Simple Variables
    • Defining Text Symbols Performing Arithmetic Operations Using Simple Variables
    • Using System Variables
    • Debugging a Program
    • Creating an ABAP List
    • Processing Character Strings
  • Control Flow Structures in ABAP
    • Implementing Conditional Logic
    • Implementing Loops
  • Runtime Errors and Error Handling
    • Analyzing Runtime Errors
    • Implementing Error Handling
  • Additional ABAP Programming Techniques
    • Retrieving Data From the Database
    • Describing Modularization in ABAP
    • Using Function Modules

Submit your request

Is the course not scheduled? Let us know what works for you by clicking the button below and select your Interest. We will do our best to consider your request.

Note: Location can be for a Virtual Classroom

Register Interest

BC100 - Introduction to Programming with ABAP | SAP TRAINING COURSES

Very Helpfull

User Rating: Be the first one !

BC100E – Introduction to Programming with ABAP | SAP TRAINING COURSES

BC100E

Introduction to Programming with ABAP

Solution:SAP Software, ABAP Creating Forms, ABAP Dialog Programming, ABAP Core, HANA Programming
Level:Basic Processes & Foundation
Languages:English

Goals

  • Introduction in Programming with ABAP.
  • Necessary Requisition for course BC400 for participants without any p programming knowledge

Audience

  • Project leads
  • Team leads
  • Developers
  • Consultants

Prerequisites

Essential

  • none

Recommended

  • none

Content

  • Introduction to structured programming
  • Develop ABAP programs using the ABAP Editor (SE38)
  • Process source text using the ABAP Editor
  • Test programs using the debugger
  • Work with elementary data objects (simple variables)
  • Value assignments, calculations, and arithmetic expressions
  • Conditional branches, logical expressions, and logical conditions
  • String operations
  • Loops
  • Implement simple screens with input and output fields
  • Define and use subroutines (why does it make sense to store parts of programs in subroutines?)

Submit your request

Is the course not scheduled? Let us know what works for you by clicking the button below and select your Interest. We will do our best to consider your request.

Note: Location can be for a Virtual Classroom

Register Interest

BC100E - Introduction to Programming with ABAP | SAP TRAINING COURSES

Very Helpfull

User Rating: Be the first one !