Blog

  • Difference between Update function module and Regular function module

    Preface – This post is part of the Differences in ABAP for Interviews series.

    Introduction

    Before discussing the difference between Update function module and Regular function module in SAP ABAP, let’s have a short introduction of the two.

    Function modules are procedures that have a set of re-usable statements with importing, exporting parameters, etc. They are created in ABAP workbench using the Function Module Builder. They play an important role in updating and in the interaction between different SAP systems, between SAP systems and remote systems through remote calls.

    There are 3 Processing types of function module:

    1. Regular Function Module
    2. Remote-Enabled Function Module
    3. Update Module

    Regular Function Module

    Regular Function Module and Update Function module consists of a block of statements that are made available globally all over the SAP landscape.

    Update Module

    The Update function module is a function module for which the processing type property of the function builder is set to Update Module. This function module is not executed immediately but is scheduled for execution in a special work process called update work process. For this purpose, the name of the update function module along with the actual parameter is registered in the database table VBLOG as a log record.

    Syntax to register the function module to the log table:

    CALL FUNCTION <function_name> IN UPDATE TASK

    [EXPORTING p1 = a1 … fn = an] [TABLES  f1 = a1 … fn = an

     The actual execution of the program is triggered by the COMMIT WORK statement. The values of the actual parameters are received by the formal parameter of the function module from the VBLOG table. After registration of the function module, if the COMMIT WORK is not triggered then the function module is not executed and the entries are deleted from the log table when the program ends.

    The regular function module does not need to be registered to be called. This is executed immediately whenever a call to this function module is made. Sy-subrc can be checked for success and failure.

    Syntax to call a Regular function module:

    CALL FUNTION  <function_name>

    [EXPORTING  p1 = a1 … fn = an] [IMPORTING  f1 = a1 … fn = an] [CHANGING   f1 = a1 … fn = an] [TABLES     f1 = a1 … fn = an] [EXCEPTIONS e1 = r1 … en = rn

    [ERROR_MESSAGE = rE] [OTHERS = ro]].

    Now, let’s have a look at their difference.

    Difference between Update function module and Regular function module

    Update Function Module Regular Function Module
    It needs to be registered first in the log table There is no need to register
    It is executed when COMMIT WORK statement is triggered. It is executed immediately when a call is made to this function.
    Sy-subrc is undefined after execution Sy-subrc can be checked after the execution

     

  • Difference between User Exits and Customer Exits

    Preface – This post is part of the Differences in ABAP for Interviews series.

    Introduction

    Before discussing the difference between User Exits and Customer Exits in SAP ABAP, let’s have a short introduction of the two.

    The enhancement allows the user to add their functionalities to the SAP standard applications without modifying the original application. Enhancement Framework is used to modify the standard SAP behavior as per the customer requirements. There are different ways to add custom functionalities in standard codes. User Exit and Customer Exit are among them.

    User Exits

    User exits are implemented in the form of subroutines and hence also called FORM EXITs. They are collected in Include and are attached to the SAP standard program. They are empty subroutines where one can fill their source code. They are the type of system enhancements originally developed for R/3 SD(Sales and Distribution). Technically they modify the existing code.

    Syntax:

    FORM USEREXIT_XXXX
    INCLUDE ZZUSEREXIT_XXXX
    ENDFORM.

    Customer Exits

    Customer exits act as hooks where one can hang their new functionalities. These are created for specific programs, screens, and menus within the standard applications. Technically, they are enhancements as they provide add-on functionality. They are used for all modules like MM, SD, FICO, PP etc.

    There are 3 types of Customer Exits:

    1. Function Module Exits

      It is implemented as a call to the function module. It allows the developer to add code in include that is implemented in a function module at a specific location in an SAP application program.

    Syntax:  CALL CUSTOMER-FUNCTION ‘910’

    1. Screen Exits

      It allows the customers to add fields to a screen in the SAP program via sub-screen which is called within standard screen’s flow logic.

    Syntax:  CALL CUSTOMER-SUBSCREEN CUSTOM_SRC

    1. Menu Exits

      These are implemented by SAP and are reserved menu entries in the GUI interface. It allows adding functionalities to menus.

    Syntax:   +CUS (additional item in GUI status)

    Now, let’s have a look at their difference.

    Difference between User Exits and Customer Exits

    User Exits Customer Exits
    It is implemented in the form of subroutine It is implemented for specific programs, screens, and menu within standard applications
    It is technically a modification as existing code are changed It is technically an enhancement as this provides add-on functionality
    It refers to SD module only It refers to all modules like MM, SD, FICO, PP etc.
    All variables, structures, internal tables, etc. are exposed to be viewed and/or changed Only variables, structures, and tables that are passed into the function through the interface are restricted to be viewed and/or changed
    It requires an access key It does not require any access key
    Changes remain after the upgrade Changes are lost after upgrade
    It gets automatically activated whenever the application/program is activated To implement this, a project is created in CMOD then activated

     

  • SAP Ariba Configuration with SAP ERP

    Preface – This post is part of the SAP Ariba series.

    Introduction

    SAP Ariba Network can seamlessly connect to different SAP business suits with the help of add-ons that comes with Ariba Network integration 1.0. In this article we will explore SAP Ariba Configuration with SAP ERP.

    Why integration is needed?

    Integration of SAP Ariba with SAP ERP allows the users to manage the procurement process in SAP Ariba with the integration of the business records already deployed in the SAP ERP system. The integration of Ariba P2P and P2O includes the data load from the ERP system to the Ariba system. It covers data related to suppliers, organizations, and purchases.

    The integration provides the full transparency of transactions of data between the system reflecting the changes and modifications in both systems.

    How does the process works?

    For the purchase of goods, the process starts with the creation of PR’s (Purchase Requisition) for catalog and non-catalog items, this then undergoes for approval of the related approver. Once the PR is completely approved by the designated approver, the PO (Purchase order) is created in SAP Ariba. The process flow of PR creation to PO creation takes place at Ariba platform.

    Once the PO is created in the Ariba platform, the PO data is replicated to ERP system. The process comes to end with the release of the invoice.

    Software pre-requisites for integration

    • SAP ERP system 6.0 or higher
    • SAP Ariba Downstream 13s or higher
    • SAP Ariba Integration Toolkit
    • SAP NetWeaver PI 7.1 or higher (optional )

    Different ways of integration

    There are four ways of performing SAP Ariba Configuration with SAP ERP:

    • File-based integration
    • Web services-based integration
    • Direct connectivity
    • Using middleware connectivity

    File based-integration

    The data is exported from the Ariba Procurement Solution in *.csv format. It is then processed by ABAP program and then replicates it to SAP ERP. After the data replication to the ERP system, the status of the transaction is fetched from ERP and then update back to SAP Ariba. SAP Ariba supports *.csv file format for import and export.

    SAP Ariba Configuration with SAP ERP

    Web-Based Integration

    This integration use middleware’s like SAP PI, SOA to establish integration. SAP PI is by default available and it does not require any manual configuration for setup, whereas using SOA manual configuration is needed. SOAP messages are generated based on WSDL and are forwarded using SAP PI.

    Direct Connectivity Integration

    In the direct connectivity process, master data (in *.csv format) is transferred from SAP ERP to SAP Ariba system in the form of SOAP messages.

    Mediated Connectivity Integration

    In the mediated connectivity integration process, both SAP PI and SOAP messages methods can be used (data can be passed as SOAP messages).

    To use SAP PI to exchange the data, you need to specify the sender and receiver communication channel. For SAP PI/PO integration, Ariba has provided Ariba Network Adapter commonly now as add-ons which allow to send and receive data in cXml format.

     

  • SAP Ariba SSO Architecture

    Preface – This post is part of the SAP Ariba series.

    Introduction

    According to SAP Ariba, it SSO Architecture is a set up of trust between SAP Ariba and Corporate Identity Provider using SAML 2.0. In this article we will explore SAP Ariba SSO Architecture in detail.

    Types of Authentication

    SAP Ariba allows buyers and suppliers to login into Ariba Network using two methods:

    • Regular User Authentication: Users can manually enter their Ariba Network usernames and passwords on the Ariba Network page.
    • Single Sign-On (SSO): When users log in to their Corporate Network, it automatically logs them to Ariba Network when needed.

    SSO also requires setup configurations to connect user authentication system to Ariba Network and this is done with the help of network administrators.

    Benefits of SSO Architecture:

    • Security Control: SSO cab be combined with multi-factor authentication ( MFA ) or users might use portable authentication devices ( like RSA Secure ID) for better security control to access Ariba Network.
    • User Experience: Repeated logins are no more required with SSO. As when users login to their Corporate Network they are authenticated to Ariba Network also.
    • Account Management: Ariba automatically revokes user’s access to Ariba Network in case they leave the organization.
    • It combines with RBA (Risk-Based Authentication): SSO combined with RBA provides insight into user behavior. Security teams are able to monitor the unusual behavior of users, such as multiple login failures and it also gives permission to block the user account in case of security issues.

    SAP Ariba SSO Architecture

     SAP Ariba SSO Architecture

  • Ariba Network Permissions

    Preface – This post is part of the SAP Ariba series.

    Introduction

    Ariba Network provides various permissions to users to access certain areas of the Ariba Network user interface. Permissions are grouped into roles and each role includes at least one permission. In this article we will explore all the Ariba Network Permissions.

    Ariba Network Permissions

    Below is the table describing Ariba Network permissions, its functionality and the access area in Ariba Network account:

    Permissions Functionality and access area
    Access to order confirmation approvals Enable users to access order confirmation approvals in Supply Chain Monitor.
    Archive access Enable users to view and search archived items.

    Access areas :

    Inbox > Archived Invoice

    Buyer Dashboard for Supply Chain Collaboration Users are able to access the Buyer Dashboard for Supply Chain Collaboration. (Only for SAP Ariba Supply Chain Collaboration Buyer accounts)
    Buyer Discount Management Program Administrator Enable users to alter Discount Management rules ( Create, maintain and deactivate)

    Access areas :

    ·         Administration > Configuration > Ariba Discount Management

    ·         Reports (Discount Acceptance, Discount Metrics, Early Payment Limit and Failed Dynamic Discounting Credit Memo Creation reports)

    Buyer Treasury Agent Users can accept or reject supplier-initiated early payment requests.

    Access areas :

    Administration > Configuration > Ariba Discount Management

    Catalog Management This permission grants users to manage catalog related activities.

    Access areas :

    Catalogs

    Company Information Users can manage company profile and website information.

    Access areas :

    ·         Administration > Configuration > Company Profile >

    ·         Administration > Configuration > Additional Information

    Contact Administration Enable users to manage company-wide and supplier specific contact assignments.

    Access areas :

    Supplier Enablement > Contacts

    Create and manage postings in Ariba Discovery Users can manage postings on Ariba Discovery. They can create, modify, close and award postings.
    cXML Configuration Enable users to configure the account for cXML transactions.

    Access areas :

    Administration > Configuration > cXML Setup

    Forecast Visibility Grants access to users to forecast and commit visibility. ( Only for SAP Ariba Supply Chain Collaboration Buyer accounts)
    Goods Receipt Report Administration Users are able to create, modify, delete and run the goods receipt report. Also, users are able to download the report.

    Access areas :

    Reports (Goods Receipt report)

    Inbox and Order Access Users are able to access the documents in the Inbox and can take actions based on their profiles. They can view and search documents like invoices, order confirmations, shipping details.

    Access areas :

    Inbox

    Invoice Report Administration Users are able to create, modify, delete and run the invoice report as well as they can download the report.

    Access areas :

    Reports (Invoice Report)

    Outbox Access Users are able to access the documents in the outbox and can take action depending upon their roles. This includes viewing and searching orders, transaction audit reports. They are also able to download the reports.

    Access areas :

    Outbox

    Payment Activities Users are able to view payments, PCard account numbers on the purchase order and are able to maintain the company’s payment account. Also because of security reasons, users are required to change their passwords in 90 days

    Access areas :

    Outbox

    PCard Configuration and Notifications This permission allows the users to enable PCard settlement as well as to maintain card administrator information and emails for card processing notification. Also, only the administrator account has this permission and only in case if the organization is enabled for payments.

    Access areas :

    ·         Administration > Configuration > Settlement > PCard Settlement Service

    ·         Administration > Configuration > Settlement > PCard Administrator Information

    ·         Administration > Configuration > Settlement > PCard Charge Methods

    ·         Administration > Configuration > Settlement > PCard Processing Notifications

    Purchase Order Report Administration Users are able to create, modify, delete, run and download the purchase orders and order summary reports.

    Access areas :

    Reports (Order,  Failed order, Order Summary report)

    Supplier Membership Report Administration Users are able to create, modify, delete, run and download supplier membership status reports.

    Access areas :

    Reports (Supplier Membership Status report)

    Supplier Profile Report Administration Users are able to create, modify, delete, run and download supplier profile reports.

    Access areas :

    Reports (Supplier Profile report)

    Supplier Remittance Information Report Users are able to create, modify, delete, run and download supplier remittance information reports.

    Access areas :

    Reports (Supplier Remittance Information report)

    Tax Book Report Administration Users are able to create, modify, delete, run and download tax book reports.

    Access areas :

    Reports (Tax Book report)

    Transaction Configuration This permission allows users to specify their preferences for routing and responding to order related activities like canceling orders, order request messages.

    Access areas :

    Administration > Configuration > Default Transaction Rules

  • SAP Ariba Network User and Role Management

    Preface – This post is part of the SAP Ariba series.

    Introduction

    In Ariba Network, administrators and users play different roles. As an administrator you provide administrative support to your company for the smooth running of business. Additionally, admins responsibility includes:

    • Administrator role is automatically linked to the username and login entered at the time of registration. However, the administrators can reassign the role to other users.
    • Registration of new accounts, account configuration and management
    • Users and roles creations
    • Handling account login issues
    • Serving as the primary contact for users

    Users have different roles, which corresponds to their job responsibilities. Each user is responsible to update their profiles – personal user information, in Ariba system. In this article we will discuss more about SAP Ariba Network User and Role Management.

    Creating Role

    1. From Company Setting menu, navigate to Users to open Users pages.
    2. In users page, under Manage Users Roles click Create Role
    3. Provide the role details – name of role, role description
    4. Provide the Permissions to role. At least one permission must be given.
    5. Click Save

    Modifying a Role

    You can modify an existing role and in case if a user is already assigned to that role, the modifications will be reflected once they login again.

    1. From Company Setting menu, navigate to Users to open Users pages.
    2. In users page, under Manage Users Roles click Edit to open Edit Role Page
    3. Update the required details – name of role, role description
    4. Update selected Permissions
    5. Click Save

    Creating User

    1. From Company Setting menu, navigate to Users to open Users pages.
    2. In users page, under Manage Users click Create User to open Create User Page
    3. Under New User Information, provide user details – username, email, first name, last name(optional), office phone no.
    4. Under Role Assignment Section, provide at least one Role to user
    5. To transfer administration role to user, click Make Administrator
    6. Click Done

    Managing User Roles and Resetting Password

    1. From Company Setting menu, navigate to Users to open Users pages.
    2. In users page, under Manage Users, select user which you want to modify, click Edit
    3. Under Role Assignment Section, add or remove roles.
    4. Under Customer Assignment Section, you can assign the user to customers.
    5. Click Save

    To reset user’s password, click Reset Password. A link will be sent to the user via email to reset their password.

  • Difference between Primary Key and Foreign Key

    Preface – This post is part of the Differences in ABAP for Interviews series.

    Introduction

    Before discussing the difference between, let’s have a short introduction of the two.

    Keys are the fundamental part of the relational database as they establish a relation between the tables and ensure each record in the table is uniquely identified.

    A database contains a lot of tables which holds thousands of records all of which are unsorted and unorganized. Fetching a particular data from those records can be difficult and challenging. This is where Keys comes to the scenario. The two important keys of the relational schema are Primary Key and Foreign Key. In this article we will discuss the Difference between Primary Key and Foreign Key in detail.

    Primary Key

    A primary key in a table uniquely identifies each record in the table. It may refer to a column or a combination of columns to implicitly identify the records. The input values of the key columns defined must be unique for each record and not contain NULL values. Each table has can have one  Primary key or group of keys that are unique for every record.  No duplicate value is allowed in the primary key field.

    Foreign Key

    A foreign key is a set of one or a combination of columns in a table that is a primary key of another table. It is used in a table is used to establish a relation between tables in the ABAP dictionary, to create value checks for the input fields and to link multiple tables in a view or a lock object. Duplicate value is allowed in the foreign key field.

     

    Difference between Primary Key and Foreign Key

    Table 1 is the foreign key table (dependent table) and Table 2 is the check table(referenced table). Here the Column 3(foreign key of Table 1) points to the Col 1(primary key of Table 2).Column 3 of Table 1 and Col 1 of Table 2 must have same data type and length.

    Difference between Primary Key and Foreign Key

    Now, let’s have a look at their difference.

    Primary Key Foreign Key
    It uniquely identifies a record in the table It establishes relation between table and is a primary key in another table
    A table has mianly one primary key A table can have multiple foreign keys
    It cannot have Null value It can have Null values
    It cannot have a duplicate value It can have duplicate values
    It cannot be dropped from the parent table which refers to the foreign key in the foreign key table It can be dropped from the foreign key table even it is referring to the primary key of the main table

     

  • Difference between Append and Insert

    Preface – This post is part of the Differences in ABAP for Interviews series.

    Introduction

    Before discussing the difference between APPEND and INSERT, let’s have a short introduction of the two.

    Internal tables are used to process the data dynamically during the program execution. Data is populated to the internal table during runtime i.e. program execution.

    APPEND and INSERT are the 2 statements that are used to populate the internal table.

    In this article we will explore more about the Difference between Append and Insert.

    Append

    APPEND statement adds one or more records at the end of the existing internal table.

    Syntax:

    APPEND {<work-area>| INITIAL LINE |LINES OF jtab [FROM idx1] [TO idx2]} TO <itable>.

    <work-area> adds the contents of the work area  <work-area> to the internal table <itable>.

    INITIAL LINE appends a blank line to the internal table <itable> with initial values in each field according to the definition.

    LINES OF jtab [FROM idx1] [TO idx2] appends the rows from idx1 index to idx2 index from jtab to the internal table <itable>.

    The APPEND statement sets sy-tabix with the index of the last appended row.

    Insert

    INSERT statement adds one or more records at a specified position of the internal table. The position can be specified by the primary table key or a table index.

    Syntax:

    INSERT {<work-area>| INITIAL LINE | LINES OF jtab [FROM idx1] [TO idx2]} TO <itable> [INDEX <idx>].

    <work-area> adds the contents of the work area  <work-area> to the internal table <itable>.

    INITIAL LINE appends a blank line to the internal table <itable> with initial values in each field according to the definition.

    LINES OF jtab [FROM idx1] [TO idx2] appends the rows from idx1 index to idx2 index from jtab to the internal table <itable>.

    INDEX specifies the position of the internal table where the new record has to be added. If the Index is not specified, the system adds the new record at the end of the internal table. If the internal table has a record at the specified index, then the new record is added at the specified index and the existing record is reinserted by incrementing the index by 1.

    The INSERT statement does not set the system field sy-tabix.

    Difference between Append and Insert

    Now, let’s have a look at their difference.

     

     

     

    APPEND INSERT
    It is a statement that is used to add a record at the end of an internal table. It is a statement that is used to add/insert record at a specific position of Internal Table.
    New records are always added to the end of the internal table. If the position is not specified only then the new records are added to the end of the internal table.
    System field SY-TABIX is set to the index of the last appended row. System field  SY-TABIX is not set.

     

     

  • SAP ARIBA – Account Configuration

    Preface – This post is part of the SAP Ariba series.

    Introduction

    SAP Ariba, allows you to access and configure new account and also you can set email notifications, electronic orders and invoice routing and other account related configurations for new suppliers. In this article we will explore SAP Ariba – Account Configuration in detail.

    Following steps can be followed to start with the SAP Ariba Account – Configuration

    1. Visit Ariba site here
    2. Provide valid credentials (Username and Password) to login

    Create new account and update Company Profile

    For account access and configuration, navigate to “Company Settings” tab:

    • In order to update information related to Company profile, you will have to navigate to “Company Profile” tab
    • Under this tab following information’s can be updated:
    • Basic company profile
    • Business Details
    • Marketing
    • Company Contacts Details
    • Certification Details
    • Additional Documents

    Create Notifications

    SAP Ariba, allows you to choose the source email address for which you want to receive notifications as well as you can choose destination email address where you want notifications to be followed up.

    • To set notifications, navigate to “Notifications” tab
    • Here, for each notification you can add three email addresses separated by commas (,).

    Manage Electronic Order Routing

    To manage electronic order, navigate to “Network Setting” option and then under this navigate to “Electronic Order Routing”.

    • Below methods can be selected for the business transactions with customers:
    • Email
    • Fax
    • Online
    • cXML
    • EDI

     

    1. Email order routing

    You can send the document as an attachment in email, which will further send the whole PO document in email.

    1. Online Routing

    You can send the PO directly to Ariba inbox without sending any copies to anywhere.

    1. EDI Routing

    ERP system should be configured with Ariba for sending PO via EDI.

    Manage Electronic Invoice Routing

    To manage electronic invoice, navigate to “Network Setting” option and then under this navigate to “Electronic Invoice Routing”.

    • Below methods can be selected for routing method:
    • Online
    • cXML
    • EDI
      • You can add tax related documents like (Tax ID, VAT ID and other related documents) through “Tax Invoicing” option.
      • And also “Invoice Archival” option can be used to set the frequency of zipped invoice archives.

     

  • What is SAP Ariba?

    Preface – This post is part of the SAP Ariba series.

    Introduction

    Ariba, is an American Software and IT services company, located in Palo Alto, California. It was established in 1996 and later in 2012 it was acquired by SAP SE (German Software maker) for $4.3 billion, and thus named as SAP Ariba. SAP Ariba was the first company to introduce IPO in 1999.

    The key idea for the foundation of company was based on providing ease to companies for their procurement process.

    What is SAP Ariba?

    SAP Ariba is a cloud-based platform that connects suppliers and buyers globally by providing procurement solutions, spend management and supply chain services on a single platform. This gives the transparency in business and a better in sight over spending.

    Key features of SAP Ariba

    Features of Ariba:

    1. SAP Ariba connects to the largest network of supplier and vendor and enhances business partnership with right partners.
    2. It connects organisation with the right vendor and provides the transparency of vendor details and procurement process which gives the clear and error free business transaction.
    3. SAP Ariba helps users to connect to different suppliers meeting their needs and managing supply chain.
    4. SAP Ariba can be easily integrated with other SAP ERP solutions like SAP ECC and S/4 HANA.

    Key benefits of SAP Ariba

    Benefits of using SAP Ariba:

    1. SAP Ariba connects suppliers, buyers on a single platform while enhancing user experience and providing the best and reliable solution for their purchase.
    2. SAP Ariba is a cloud-based solution and hence it can be accessed from any location and requires very less capital for the setup.
    3. Setup for the procurement processes – P2P (Procure-to-Pay), P2O (Procure-to-Order) is quite easy.
    4. Using suitable Integration mode, master data – Organisation structure, GL, supplier data can be easily transferred to Ariba solution.
    5. Easy transfer of transactional data – IR (Invoice Receipt) details, PO (Purchase Order) details, GR (Goods Receipt) details; to Ariba using optimal integration.
    6. Integration toolkit is used to connect Ariba solution and ERP system.

    SAP Ariba Solution

    Solution area covered by SAP Ariba are:

    1. Supplier management: It manages supplier information, performance, lifecycle and risks.
    2. Strategic sourcing: Manages sourcing, contracts, spend analysis process (for all three direct, indirect and services)
    3. Direct Spend: Connects partners, people, processes and information required for the ease flow of activities.
    4. Procurement: Helps to achieve compliance, visibility and control by downsizing cost and risks, and improving efficiency.
    5. Financial Supply Chain: Manages the free flow of payables, transactions, invoice management.

    What is SAP Ariba - Solutions