# Package com.sap.conn.jco

Contains the major part of the interfaces and factories that an application for JCo is typically dealing with.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  JCoAbapObject | The interface comprises public methods for access to ABAP object members.
  JCoAttributes | Encapsulates a number of attributes of a connection, such as codepage information, system information of the communication partner, and other useful data.
  JCoBackgroundUnitAttributes | Unit Attributes describing some properties of a processed bgRFC unit in the backend.
  JCoClassMetaData | Encapsulates the metadata of ABAP classes.
  JCoCustomDestination | Customizable destination that allows to set specific user logon data and SNC configuration.
  JCoCustomDestination.SncConfigurationData | SncConfigurationData allows change SNC configuration for a JCoCustomDestination.
  JCoCustomDestination.UserData | UserData allows change the logon configuration data for a JCoCustomDestination.
  JCoCustomRepository | `JCoCustomRepository` is designed to be used for static/custom metadata.
  JCoDestination | JCoDestination identifies a physical destination of a function call.
  JCoExtendedFieldMetaData | Encapsulates the extended metadata of a single field of either a parameter list, a structure, or a table.
  JCoField | Class to represent a data field in a record (i.e.
  JCoFieldIterator | Encapsulates an iterator for the fields of a record.
  JCoFunction | Class that represents a function.
  JCoFunctionTemplate | Encapsulates all metadata of a function and its import, changing, export and table parameters as well as the exception list.
  JCoFunctionUnit | The interface comprises public methods to work with function unit.
  JCoListMetaData | Encapsulates the metadata of either a parameter list, a request, or a response.
  JCoMetaData | Encapsulates the metadata of JCo data containers.
  JCoParameterField | Class to represent a data field in a parameter list.
  JCoParameterFieldIterator | Encapsulates an iterator for the fields of a parameter list.
  JCoParameterList | A class that encapsulates a parameter list used to pass on data to a function.
  JCoRecord | Base interface for all data containers used throughout the JCo framework.
  JCoRecordField | Class to represent a data field in a structure or table.
  JCoRecordFieldIterator | Encapsulates an iterator for the fields of a structure or table.
  JCoRecordMetaData | Encapsulates the metadata of either a structure or a table.
  JCoRemoteContext | This interface comprises all the methods an object representing a remote context of a (failed) RFC connection is required to implement.
  JCoRepository | JCo metadata repositories are needed to get the technical description of functions and parameters used for fulfilling RFC calls.
  JCoRepositoryQueryResult | JCoRepositoryResult describes the result of the repository query.
  JCoRequest | A JCoRequest is a special view on a JCoFunction and is used in the Request/Response model of JCo function calls.
  JCoRequestUnit | The interface comprises public methods to work with request unit.
  JCoResponse | A JCoResponse is a special view on a JCoFunction and is used in the Request/Response model of JCo function calls.
  JCoStructure | JCoStructure is for data containers that need a certain layout in memory.
  JCoTable | Interface that describes internal tables used in the parameter lists of function modules.
  JCoThroughput | JCo Throughput interface. The implementation of this class stores performance data.
  JCoTraceListener | JCo trace listener interface.
  JCoUnitIdentifier | Function unit identifier is a unique identifier for a function or request unit for bgRFC.

- Class Summary
  Class | Description
  --- | ---
  About | The About class allows getting information about JCo.
  JCo | The main factory class of JCo.
  JCoContext | The JCoContext class allows the execution of stateful function call sequences with JCo.
  JCoDestinationManager | The JCoDestinationManager creates and manages the destinations used by JCo applications.

- Enum Summary
  Enum | Description
  --- | ---
  AbapClassException.Mode | The Mode enumeration describes how class exceptions should be handled by a server system.
  JCoClassMetaData.JCoAttributeKind | An enumeration of the possible or relevant attribute types.
  JCoCustomRepository.QueryMode | Enumeration that describes all modes to control the remote queries of a custom repository.
  JCoFunctionUnitState | Defines possible function unit states.
  JCoUnitIdentifier.Type | BgRFC unit types.

- Exception Summary
  Exception | Description
  --- | ---
  AbapClassException | This class represents an ABAP class exception.
  AbapException | A convenience class on top of JCoException that reports exceptions, which occurred in an SAP system, while processing a function module.
  ConversionException | A ConversionException will be thrown, if a field in a JCoRecord cannot store a value passed to this record by a setValue call.
  JCoException | General JCo exception object.
  JCoRuntimeException | Basic JCo exception for JCo runtime exceptions.
  XMLParserException | Exception thrown by the XML parser in the RFC communication when using complex parameters or if the function module is tagged in the metadata to use binary ASXML as serialization format on the line.

- Error Summary
  Error | Description
  --- | ---
  OutOfNativeMemoryError | A special OutOfMemoryError indicating that a JNI call terminated with a return code showing that a memory allocation failed.

## Package com.sap.conn.jco Description

Contains the major part of the interfaces and factories that an application for JCo is typically dealing with.

This covers

- all exceptions of JCo
- the data container and metadata interfaces (including the corresponding iterator interfaces and fields)

  Data container | Corresponding metadata | field (iterator) [if applicable]
  --- | --- | ---
  `JCoFunction` | `JCoFunctionTemplate` | `n/a`
  `JCoParameterList` | `JCoListMetaData` | `JCoParameterField(Iterator)`
  `JCoRequest` | `JCoListMetaData` | `JCoParameterField(Iterator)`
  `JCoResponse` | `JCoListMetaData` | `JCoParameterField(Iterator)`
  `JCoStructure` | `JCoRecordMetaData` | `JCoRecordField(Iterator)`
  `JCoTable` | `JCoRecordMetaData` | `JCoRecordField(Iterator)`
  `JCoAbapObject` | `JCoClassMetaData` | `n/a`

- function unit related interfaces
- destination interfaces and the destination manager
- repository interfaces
- `JCoContext` for declaring/ending statefulness
- the central factory class `JCo`

Recommendations:

- Only declare statefulness when necessary. Use stateless contexts wherever possible.
- Do not use fields and their iterators for high volume scenarios. Prefer the direct container access to field values and metadata.

Note:The implementation for most of the interfaces in this package are exclusively provided by the JCo runtime. Other implementations are not supported. Hence, adding a method to those interfaces is not considered as an incompatible change!

Copyright © 2019 SAP. All Rights Reserved.