# 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 | A JCoCustomDestination is a customizable destination which allows to set specific user logon data and SNC configuration parameters.
  JCoCustomDestination.SncConfigurationData | SncConfigurationData allows to change the SNC configuration for a JCoCustomDestination.
  JCoCustomDestination.UserData | UserData allows to change the user logon 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 interface 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 whenever this is possible.
- Do not use fields and their iterators for high volume scenarios. Prefer the direct container access to field values and meta data.

Note: The implementations for the interfaces in this package are exclusively provided by the JCo runtime. The only two interfaces, which are designed for being implemented by custom Java applications, are the interfaces `JCoExtendedFieldMetaData` and `JCoTraceListener`. Other custom interface implementations are not supported. Hence, adding a new method to any interface in this package, except to those previously mentioned two, is not considered as an incompatible change.

Copyright © 2020 SAP. All Rights Reserved.