Show TOC Start of Content Area

Object documentation External Services  Locate the document in its SAP Library structure

Definition

A collection of interface standards used for exchanging information across application and system boundaries.

Use

You can use external services to communicate with external systems and applications independent of language, technology, or platform. This ensures that the pre-existing functions of these systems and applications can be reused in CAF.

Structure

In CAF, you call back-end functions with the following external services:

     Remote Function Calls (RFCs)

     Web Services

You cannot modify external services. You only define dependencies from the application to the external service, and then expose or consume the external service from your application service. External services are always stateless, meaning a session will be opened and closed within the call.

Remote Function Calls

You can use the most frequently used external service, the RFC, to communicate with ABAP-based SAP systems. RFCs are interfaces that enable external communication with function modules of SAP systems.

You can import the metadata (including methods and input and output parameters) of RFCs into CAF and subsequently make them available to other CAF services.

Web Services

You can use Web services to enable systems to exchange data and start actions of any type. The WSDL (Web Service Description Language) files are imported and retrieved from a directory or UDDI server.

CAF offers an important dialog which publishes RFCs and Web services so they can be used by entity and application services in CAF. In the next section you will find information on:

     Web service structures

     Facets

Supported Structures

Composite Application Framework Core (CAF Core) supports the consumption of flat and complex structures when calling Web services. You can see these supported structures with sample Web service responses in the table below.

Type

Example Web Service Response

Plain (or Flat)

     String: Name

     Integer: Age

    

Plain (or Flat) with Structure

     String: Name

     Integer: Age

     Structure: Home Phone

     String: Area Code

     String: Number

Nested Structure     

     Person

     String: Name

     Integer: Age

     Structure: Communication

     Structure: Home Phone

     String: Area Code

     String: Number

     Structure: Mobile Phone

     String: Area Code

     String: Number

Table with Nested Structure

     Table Persons (1..n)

     String: Name

     Integer: Age

     Structure: Communication

      Structure: Home Phone

      String: Area Code

      String: Number

      Structure: Mobile Phone

      String: Area Code

      String: Number

Plain (or Flat) with Table

     String: Name

     Integer: Age

     Telephones: (1..n):

     Type

     Area Code

     Number

Root with Plain and Table    

     Person

     String: Name

     Integer: Age

     Phones: (1..n):

      Type

      Area Code

      Number

Nested with Table

Table: Persons (1..n):

     String: Name

     Integer: Age

     Phones: (1..n):

      Type

      Area Code

      Number

Note

CAF Core can consume all types of Web service structures; however, currently, Web services can only be exposed with structures that are plain (flat) or plain with structure.

 

Supported Facets

The WSDL 1.1 tag is no longer necessary. As a result, the following facets are supported:

Type

Description

maxCount

Restricts the query result set to a maximum number of entries.

Example

Retrieving data from backend systems using an external service can create a performance bottleneck. With the maxCount parameter, you can define the maximum number of objects to become instantiated from the result set, thereby limiting how many query results will be returned.

maxExclusive

 

States the upper bound for an ordered data type. Exclusive means that the upper bound is not in the value space. For an upper bound U, all values v must be v < U.

minExclusive

 

States the lower bound for an ordered data type. Exclusive means that the lower bound is not in the value space. For a lower bound L, all values v must be v > L.

maxInclusive

 

States the upper bound for an ordered data type. Inclusive means that the upper bound is also in the value space. For an upper bound U, all values v must be v <= U.

minInclusive

States the lower bound for an ordered data type. Inclusive means that the lower bound is also in the value space. For a lower bound L, all values v must be v >= L.

Example

 <simpleTypename="Zip Code">

<restriction base="int">

minInclusivevalue="1000"

maxExclusivevalue="10000"

</restriction>

<simpleType>

whiteSpace

none

pattern

 

Can be used for other data types than just string. However, a message can only contain one message part.

Example

<simpleTypename="StudentID">

<restriction base="integer">

pattern value="[0-1]?[0-9]{5}"

</restriction>

<simpleType>

See the following topics on Core Development Tasks for more information on implementing external services in your CAF project:

     Service Modeling

     Service Mapping

End of Content Area