Author: Rudramani Pandey

  • 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

  • Difference between Narrow casting and Wide Casting

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

    Introduction

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

    Both the Narrow casting and Wide casting is related to Inheritance concept.

    The subclasses which inherit from the parent (super) class would usually have more components than the parent class, hence the subclasses are Wide.

    On the other hand, the parent (super) classes have a smaller number of components, hence the parent classes are Narrow.

    Narrow casting

    In Narrow casting, an instance of the subclass is assigned to the reference of the superclass. As we are switching from a “more specific view” to a “less specific view”, it is called Narrow casting. By this assignment, only the inherited components of the subclass can be accessed using the reference of the superclass.

    Steps to Narrow Cast:

    i) Declare a reference variable of the superclass

    DATA: lr_parent TYPE REF TO super_class.

    ii) Declare a reference variable of the subclass

    DATA: lr_child TYPE REF TO sub_class.

    iii) Create an instance of the subclass reference

    CREATE OBJECT lr_child.

    iv) Assign the instance to reference of the superclass

    lr_parent = lr_child.

    Wide Casting

    In Wide Casting, an instance of the superclass is assigned to the instance of the subclass. As we are switching to a “more specific view” from a “less specific view”, it is called Wide Casting. By this assignment, all the inherited components and specific components of the subclass can be accessed using the instance of the subclass. The Wide Casting will always fail unless the instance of a subclass has the same type as of the instance of the superclass.  So, it is required to do Narrow casting always before Wide casting.

    Syntax to Wide Cast:

    lr_child ?= lr_parent

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

    Difference between Narrow casting and Wide Casting

    Narrow Casting Wide Casting
    It means copying an instance of subclass to an instance of the super class. It means copying an instance of the super class to an instance of sub class
    Only inherited components of the subclass can be accessed. Inherited, as well as specific components of the subclass, can be accessed.
    Assigning operator is used. Casting operator is used.
    Syntax:

    lr_parent = lr_child

    Syntax:

    lr_child ?= lr_parent

     

  • Difference between Check Table and Value Table

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

    Introduction

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

    Table validation is a concept through which the field is restricted to have certain values.

    Field level validation and domain level validation are two concepts of table validation. Field level validations are done to validate entries at field level with the help of a check table whereas domain level validations are done to restrict the values of the field at domain level with the help of fixed values of the domain and value table of the domain.

    Check Table

    Check Table is a table that contains all the valid entries for a field. Fields of a database table whose data type is determined by data element can be assigned the check table. The field of the table to which the check table is assigned is considered as a foreign key field and is part of the foreign key of the table. The table becomes a foreign key table and the primary key of the check table is the foreign key of the foreign key table.  The entries of the primary key of the check table are used as an input help (F4 help) for the foreign key field.

    Value Table

    Value Table is a table that contains all the valid entries of a domain and this domain can be reused in multiple tables. This is maintained at domain level and whenever a foreign key relationship has to be created, the system looks for the value table field, if found, it automatically proposes that name as a check table to generate a foreign key proposal.

    This is a kind of master check and is maintained as a customization object i.e. to enter values to this table a development transport request has to be created and transported.

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

    Difference between Check Table and Value Table

    Check Table Value Table
    It is a table which contains all valid entries of a field. It is a table which contains all valid entries of a domain.
    It is a type of field level validation. It is a type of domain level validation.
    It uses foreign key relationship. It is used as a proposal for check table whenever a foreign key relationship is created.

  • Consuming Services in SAP CAP

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

    Introduction

    In previous articles we have defined modeling in CAP, learnt Defining Services in SAP CAP and performing operations on SAP CAP Services. In this article we will learn Consuming Services in SAP CAP.

    Consuming Services in SAP CAP

    To keep the consumption of services uniform irrespective of the type of service being consumed, CAP provides a generic paradigm.

    const srv = cds.connect.to('some-service')
    
    // could be any of...
    
    // - local service
    
    // - remote service client
    
    // - database client
    
    let query = SELECT.from(Books).where({ID:111})
    
    let books = await srv.run (query)

     

    The above code snippets can be demonstrated as following:

    Consuming Services in SAP CAP

    Note: CAP treats even Database as a service which eventually enhances the database interaction with the help of generic event handlers.

    Types of Service Consumption

    • Event-Based Consumption

    The local services can be accessed by Node.js event emitter asynchronously and directly. But to access the external service, we will have to configure the package.json or .cdsrc.json file. We can also enable the Enterprise messaging1 by setting the property kind as “enterprise-messaging”.

    Example:

    { 
    
    "cds":
    
        {   
    
        "requires":
    
            {     
    
            "my.external.Service":
    
                {       
    
                "kind": "enterprise-messaging",       
    
                 "credentials": {       
    
                   "namespace": "my/custom/namespace"    
    
                     }  
    
               }   
    
         } 
    
      }
    
    }
    
    In case we want to enable Enterprise Messaging for all the external and internal services, then we will define the configuration under “messaging” section, the same is shown below:
    
    { 
    
    "cds":
    
    { 
    
       "requires":
    
    {
    
          "my.external.Service":
    
    {
    
            "kind": "odata"     
    
    },
    
          "messaging":
    
    {       
    
    "kind": "enterprise-messaging",
    
            "credentials":
    
    {
    
              "namespace": "my/custom/namespace" 
    
           }
    
          }
    
        }
    
      }
    
    }

    In case, you just want the local service to be enabled for Enterprise Messaging, it should be mentioned under the section cds.provides.

    Example:

    {  "cds": 
     {    
       "provides": 
     {      
        "my.own.Service": 
     {        
       "kind": "enterprise-messaging"
          }
        }
      }
    }

     

    • HTTP-Based Consumption

    To consume external service in SAP CAP, we need to define it under Destination Service2.

    In the package.json or in the .cdsrc.json the consumed service needs to be configured with the following:

    • Destination:Name of the destination (optional)
    • requestTimeout: ms until a request times out Default is 60,000 ms (optional)
    • model:The CSN3 model of the external service
    • poolConnections to the external service are pooled to prevent DOS-Attacks (optional)

     

    Example:

    {  "cds": {    "requires": {      "externalService": {        "kind": "rest/odata",        "model": "path/to/model",        "credentials": {          "destination": "destinationName",          "requestTimeout": 30000        },        "pool": {          "min": 1,          "max": 10        }      }    }  }}

    If the external service is further extended to used by some other application, then its parameters can be mentioned under credentials section, as below:

    {  "destination": "destinationName",  "url": "...",  "username": "...",  "password": "..",  "requestTimeout": 30000}

    Sending Requests

    Simple examples for reading data (works also for create, update, and delete):

    // Connect to external serverconst srv = cds.connect.to('my.external.service')const { Authors } = srv.entities // share request context with the external service// inside a custom handlerconst tx = srv.transaction(req) // url string inputconst response = await tx.get('/Authors?$select=name') // CSN entity input and fluent query APIconst response = await tx.read(Authors).where('ID', 1) // CQN input from fluent query APIconst cqn = SELECT.from(Authors)const response = await tx.run(cqn)

     

    Adding Event Handlers

    We can add event handlers while consuming a service. This will help us to perform specific tasks on success and failure of the service consuming operation. To handle errors, you can register an .on.error(() => {…}) handler.

    There are two ways to handle the events:

    1. By specifying the event name

    Example:

    const srv = cds.connect.to('my.external.service')srv.on('myEvent', msg => console.log(msg.data))srv.on(['myEvent', 'myOtherEvent'], msg => console.log(msg.data))srv.on('myBoundEvent', 'myEntity', msg => { 
       if (msg.data.age < 18) 
    {
          throw new Error('Cannot handle this event.')    
    }
    })
    1. By specifying the topic directly

    Example:

    const srv = cds.connect.to('my.external.service')srv.on.error(err => { // handle error})

    Emitting Events

    To emit events, you can use the .emit method described in srv.emit.

    There are two ways to create Emits:

    1. By specifying the event name
    2. By specifying the topic directly

    Example:

    const srv = cds.connect.to('my.external.service') srv.emit('myEvent', {some: 'payload'})srv.emit('myBoundEvent', 'myEntity', {some: 'payload'})srv.emit('my/custom/namespace/my/custom/topic', {some: 'payload'})srv.emit('topic:myCustomTopic', {some: 'payload'})srv.emit('myEvent', {some: 'payload'}, {some: 'headers'})

    Best Practises related to Service Consumption:

    • Make sure, that destination configurations for deployment aren’t shared on any file shares
    • There are different types of messaging instances, use only enterprise-messaging for production environment
    • It is good to provide the destination name, else the runtime will look for the name of the configured data source i.e. externalService in previous example
    • To connect to an external service, connect.to should be used
    • As of now only CRUD operations can be performed using send requests. And only Read all, read single can be performed using send requests. No query like filtering or ordering is supported for send request operations
    • An Enterprise Messaging service creates a queue4 for every request and in case it is unused, it must be removed from the SAP Cloud Platform manually