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