Page tree
Skip to end of metadata
Go to start of metadata

Transaction SPI_TOOLS

The central transaction to reach all the SPI related tools is SPI_TOOLS.
From there you can access:

  • Metadata Browser – to visualize the metadata of your application
  • Service Provider Browser – to execute/test your SP via a generic UI
  • Activation of Runtime Checks – to activate additional SPI runtime checks (on system/ABBID/user level) to identify inconsistencies/errors within your application (recommended during the whole development and test phase)

SPI Metadata Browser

The transaction code of the SPI Metadata Browser is MDB

The main target of it is to visualize the SPI metadata model of applications in a comprehensible way and to analyze them for completeness and reasonableness.

The user interface of the browser looks like the following:

SPI Metadata Browser

At the top of the screen an input field (A) enables the user to choose an ABBID for building up its metadata structure inside the tree area on the left hand side of the screen (C). The detail area (D) is for displaying the corresponding metadata attributes. With the two navigation buttons (B) the user is able to switch between two different views: The 'Attribute View' (shown above) and the 'Metadata Inspector View' for displaying results of various checks (shown below).

How to Use the SPI Metadata Browser

  1. Insert one ABBID into the considering input field (A) or use button 'Multiple ABBID selection' next to the input field to select more than one ABBID at the same time.
    Use Button 'Execute' or press F8 to start with building up the tree structure.
  2. Inside the tree area (C) expanding and collapsing nodes is possible via the toolbar buttons or single click on nodes. The tree displays nodes, sub nodes, actions and queries. The root node is the ABBID itself.
  3. Select a desired node from the tree and press button 'Details' at the tree toolbar. The node and all its subordinate nodes will be loaded into the detail area (D). Now the metadata attributes are visible. At the bottom part of the detail area you can switch between actions, queries and initialization operations via button (The buttons are only active if queries or initialization operations are available for the nodes).
    All underlined fields (links) allow forward navigation e.g. to have a look at structure and table type definitions or class definitions. Grey fields give a hint that the attribute isn't available for the version of the metadata provider (The version can be found on the top list under 'ABBID Attributes').
  4. Check if errors, warnings or information are available for the metadata of the chosen ABBID.
    The icon of navigation button 'Metadata Inspector' refers to the checks results.
  5. Press button 'Metadata Inspector'.
    The various checks are divided in different categories. Incorrect nodes or nodes with warnings and information are added to the corresponding check category. The colored columns give information about the number of available errors. The user has the possibility to get information of the check results by using the 'Information' icon. In fields of column 'ABBID' and 'Node' forward navigation to the Metadata Provider class is available.
    Below you see a screenshot of the Metadata Inspector:SPI Metadata Inspector

SPI Browser

The transaction code of the Service Provider Infrastructure Browser is SPB.

The main target of this browser is to provide an application independent test interface for Service Providers.
Thereby it helps to speed up the backend implementation because it simplifies the testing of new backend functionality.
Additionally it helps to identify gaps or issues which might not become visible by using an application specific UI. Thereby the SPB supports in building a backend that is really decoupled from the UI.

The user interface of the browser looks like the following:

Service Provider Infrastructure Browser

At the top of the screen the Application Building Block ID (ABBID) input field (A) enables the user to choose an ABBID for building up its hierarchical metadata node model inside the tree area on the left hand side of the screen (B). Once the tree area is loaded, the transactional operation controls (C) appear, allowing the user to call SAVE, CHECK_BEFORE_SAVE and CLEAN_UP methods. In the main ALV area (E) the result set of the executed operation is displayed, if available. Using the Exporting Parameters Bar (D) further information can be acquired regarding the operation processed. The Log Area (F) contains messages from the Service Provider class and the SPI Browser.

How to Use the SPI Browser

  1. Insert an ABBID existing in the current system into the corresponding field either manually, or the F4 help can be used to obtain information about the possible input values. Press Enter, or double click on the text appearing in the input field.
  2. Select a node operation by right clicking on the node in the tree, and choosing an item from the context menu.
  3. A popup opens up with the title of the selected operation. Enter input data to the popup ALV.
    Table lines can be inserted and removed using the standard ALV toolbar (default number of lines is 10).
    Press Execute at the bottom of the modal window.

    How To Set Additional Parameters

    • Retrieve and Retrieve by Association operations also have a locking indicator (IV_LOCK) that can be set using the checkbox below the ALV.
    • In case of the ACTION, if an action structure is defined in the metadata provider, the button Parameters appears next to the execute button. By clicking on it, in a modal window the action parameters can be set.
  4. The result set is displayed in the main ALV area (E). The main ALV toolbar consists of dynamic buttons, with the names of the supported operations, actions and queries on the specific node. If lines are selected when selecting an operation from the toolbar, the selected data is transmitted to the popup.
    The status icon (green light) in the Exporting Parameters Bar (D) indicates the general outcome of the called operation (EV_FAILED). If further parameters are available as well, the corresponding buttons become active. Clicking on them provides the information in a modal window.
    SPB Operation Result

SP Service Classes

The ABAP class /PLMB/CL_SPI_APPL_ACCESS_UTILS and /PLMB/CL_SPI_QUERY_UTIL offers reusable services (mainly relevant for backend implementations). This page gives an overview about the most used methods. For a complete overview please have a look at the classes itself.

SP Factory /PLMB/CL_SPI_REUSE_SP

SPI offers a reusable Service Provider that eases and standardizes Service Provider implementation. This service consists of two main parts:

  • An abstract Service Provider implementation (class /PLMB/CL_SPI_REUSE_SP) from which the application specific Service Provider has to inherit and
  • A node access interface (/PLMB/IF_SPI_NODE_ACCESS) which is implemented per node of the metadata model (reuse and inheritance concepts are of course possible and often advisable)

The idea of this approach is to separate a Service Provider implementation into two parts. Transactional methods (e.g. SAVE and CLEAN_UP) are implemented in the application's Service Provider (by implementing the foreseen abstract methods of the reusable Service Provider), while the node specific methods (e.g. RETRIEVE and UPDATE) are implemented in node specific classes implementing the node access interface. This results into a clean structuring of coding and proper delegation of responsibilities. SPI handles the administration of the various node instances (= factory) and also ensures e.g. that each node instance use its correct Collector instance, which is especially important if nodes are instantiated multiple times.

Provided functionality:

  • Node Factory – no instance handling and management required on application side anymore
  • Forwarding of messages to the correct Collector instance
  • Calculation and population of export parameters of the application access interface /PLMB/IF_SPI_APPL_ACCESS, like EV_FAILED and ET_INDEX_FAILED based on the provided messages

Note: usage of this concept does not have an impact on the implementation of the Metadata Provider

Implementation Guide

Implement the Node Access Interface /PLMB/IF_SPI_NODE_ACCESS

Different approaches are possible – also depending on the complexity of the application's node model (see Metadata Provider):

  • For each node separate classes are created, each implementing the node access interface
  • One node super class is defined that implements the node access interface and all node implementations inherit from this class
  • The method signature of the node access interface is very similar to the application access interface /PLMB/IF_SPI_APPL_ACCESS, only small deviations exist:
    • The node name is not part of the method signature, since one node class implementation represents already a specific node
    • The methods RETRIEVE and INSERT provide an optional import parameter IV_PARENT_NODE_NAME to identify whether an INSERT/RETRIEVE by association is required, rather than having two parameters IV_NODE_NAME and IV_TARGET_NODE_NAME
    • The method INITIALIZE provides the Collector and Metadata Provider instances, as well as the node name for which this class is called (the latter is only relevant in exceptional cases where e.g. a node implementation handles multiple nodes or in very generic implementations)

Implement the Application's Service Provider

  • Create a class inheriting from the SPI reuse Service Provider /PLMB/CL_SPI_REUSE_SP
  • Implement the three (transactional) methods CLEAN_UP, CHECK_BEFORE_SAVE and SAVE provided by the super class; note: relevant are the 'protected abstract' methods and not the ones part of the application access interface /PLMB/IF_SPI_APPL_ACCESS that are also visible in the application Service Provider, these methods are all implemented 'final' by the reuse SP
  • Implement the method DEFINE_NODE_CLASS_ASSIGNMENT: this method returns the (node) class names per metadata node name, e.g. if the metadata node "CARRIER" is implemented by class CL_ND_CARRIER than this combination must be returned by the method (for all nodes); note: if the data is returned incomplete, e.g. a node is missing, this results in an exception
  • Maintain your Service Provider class name in the ABBID table

Class /PLMB/CL_SPI_APPL_ACCESS_UTILS

Message Handling

EVALUATE_MESSAGES

This method allows filling the SPI parameter EV_FAILED (failed indicator) and ET_INDEX_FAILED (both e.g. available in the SP Update and Delete methods...) based on a message table.
The logic is as follows: if the message table contains at least one error message without a message index (field MSG_INDEX) the failed indicator is set. For error messages with message index an entry is written to the index failed table.
This method is very helpful in Service Provider implementations to supply the export parameters of the interface methods based on the message table received from the backend (e.g. BO) call.

Method signature:

Parameter

Data Type

Description

IT_MESSAGE

/PLMB/T_SPI_MSG

Messages (mandatory)

EV_FAILED

/PLMB/SPI_FAILED_IND

Failed indicator

ET_INDEX_FAILED

/PLMB/T_SPI_INDEX_FAILED

Failed indices

EVALUATE_MESSAGES_RETRIEVE

This method fulfills the same purpose as EVALUATE_MESSAGES but is specialized for the RETRIEVE call. A RETRIEVE call can typically cause messages due to lock errors (if the lock flag was set) or due to data read errors. This method converts both message tables into the SPI specific index failed table type (reason code and index, not only index!) of the RETRIEVE method.

Method signature:

Parameter

Data Type

Description

IT_MESSAGE_LOCK

/PLMB/T_SPI_MSG

Messages caused by locking

IT_MESSAGE_RETRIEVE

/PLMB/T_SPI_MSG

Messages caused by data read (mandatory)

ET_MESSAGE_COMBINED

/PLMB/T_SPI_MSG

Combined message table (for handover to SPI Collector)

EV_FAILED

/PLMB/SPI_FAILED_IND

Failed indicator

ET_INDEX_FAILED

/PLMB/T_SPI_RTR_INDEX_FAILED

Failed indices in RETRIEVE format

ADD_MESSAGES

Adds an import table of messages to a given changing table of existing message with following (optional) additional functionality:

  • Filtering of messages based on a given message severity, e.g. all messages "below" error are ignored
  • Adjustment of the message index
  • Adding a field name as message reference
  • Calculation of the new overall severity

Use case: within one method you call several other methods that return messages. Those have to be added to an overall message table.

Method signature:

Parameter

Data Type

Description

IV_SUPPRESS_SEVERITY_UP_TO

/PLMB/SPI_MSG_SEVERITY

Specifies the severity for which messages with a "lower" message type shall be ignored/filtered

IV_MSG_INDEX

/PLMB/SPI_MSG_INDEX

(New) message index with which the imported messages are added to the changing table

IV_FIELDNAME

FIELDNAME

(New) field name with which the imported messages are added to the changing table

IV_SEVERITY

/PLMB/SPI_MSG_SEVERITY

Overall severity of the import message table, this parameter must be supplied if CV_SEVERITY is requested

IT_MESSAGE

/PLMB/T_SPI_MSG

Table of messages to be added to the message table specified by CT_MESSAGE (mandatory)

CV_SEVERITY

/PLMB/SPI_MSG_SEVERITY

Old/current severity that needs to be updated based on the added messages (theoretically CV_SEVERITY could be "lower" than IV_SEVERITY, but based IV_SUPPRESS_SEVERITY_UP_TO all import messages where filtered, in that case CV_SEVERITY is of course not adapted (mandatory)

CT_MESSAGE

/PLMB/T_SPI_MSG

Table of messages (mandatory)

ADD_SYST_MESSAGE

This method adds a message that is contained in the SY fields to a table of messages and adjusts the severity if needed.

Method signature:

Parameter

Data Type

Description

IV_MSG_INDEX

/PLMB/SPI_MSG_INDEX

Index of the data table (which is not handed over to this method) the message refers to

IV_FIELDNAME

FIELDNAME

Field the message refers to

CT_MESSAGE

/PLMB/T_SPI_MSG

Table of messages

CV_SEVERITY

/PLMB/SPI_MSG_SEVERITY

Message severity

SET_MESSAGE

This method offers a subset of the functionality that is covered by method ADD_SYST_MESSAGE.

CONVERT_SYMSG

This method offers a subset of the functionality that is covered by method ADD_SYST_MESSAGE.

COMBINE_MESSAGE_TABLES

This method combines two message tables (source and target). For the source table an index needs to be supplied with which the messages are added to the target table. Note: initial indices of source messages are respected and not overwritten by IV_INDEX_TARGET.

Method signature:

Parameter

Data Type

Description

IV_INDEX_TARGET

IV_INDEX_TARGET

Message index to be set in target message table (mandatory)

IT_MESSAGE_SOURCE

/PLMB/T_SPI_MSG

Source message table (to be added to target message table) (mandatory)

CT_MESSAGE_TARGET

/PLMB/T_SPI_MSG

Target message table (containing existing message plus the source table message) (mandatory)

CONVERT_BAPIRET

This method converts a message table in the BAPIRET format to the SPI message format.

Method signature:

Parameter

Data Type

Description

IS_BAPIRET

BAPIRET2

BAPIRET structure

IT_BAPIRET

BAPIRETTAB

BAPIRET table

CT_MESSAGE

/PLMB/T_SPI_MSG

Message table enhanced with BAPIRET messages (mandatory)

CONVERT_EXCEPTION_TO_MSG

This method converts an exception (CX_ROOT or inherited) in to the SPI message format (table of message type /PLMB/T_SPI_MSG).

Method signature:

Parameter

Data Type

Description

IO_EXCEPTION

CX_ROOT

Exception instance (mandatory)

IV_FIELDNAME

FIELDNAME

Fieldname the exception refers to

IV_MSG_IDX

/PLMB/SPI_MSG_INDEX

Message index to be set in ET_MESSAGES

ET_MESSAGES

/PLMB/T_SPI_MSG

Resulting message table

CHANGE_MESSAGE_TYPE

This method allows changing message types in a message table. For example error messages should be "downgraded" to warning messages. As default the "from" message type is preset with 'E' (error message) and the "to" message type with 'W' (warning message).

Method signature:

Parameter

Data Type

Description

IV_FROM_TYPE

SYMSGTY

From message type

IV_TO_TYPE

SYMSGTY

To message type

CT_MESSAGE

/PLMB/T_SPI_MSG

Messages to be adjusted (mandatory)

SET_MSG_INDEX

This method allows setting a new message index to a given message table.

Method signature:

Parameter

Data Type

Description

IV_INDEX

/PLMB/SPI_MSG_INDEX

New message index (mandatory)

CT_MESSAGE

/PLMB/T_SPI_MSG

Messages to be adjusted (mandatory)

GET_SEVERITY

This method calculates the overall severity of a message table, the "highest" message type wins: S < I < W < E < A/X.

Method signature:

Parameter

Data Type

Description

IT_MESSAGE

/PLMB/T_SPI_MSG

Messages (mandatory)

EV_SEVERITY

/PLMB/SPI_MSG_SEVERITY

Overall severity of the message table

ADJUST_MESSAGE_SEVERITY

This method updates a given message severity based on a second one (the "higher" message severity wins: S < I < W < E < A/X)

Use case: within one method you call several other methods that return a message severity. At the end of this method an aggregated message severity (based on all calls) needs to be returned.

Method signature:

Parameter

Data Type

Description

IV_SEVERITY

/PLMB/SPI_MSG_SEVERITY

New severity that needs to be considered (mandatory)

CV_SEVERITY

/PLMB/SPI_MSG_SEVERITY

Old/current severity that needs to be updated (mandatory)

CALC_RELEVANT_SEVERITY_LEVEL

This method calculates the severity level for a given message type/severity, e.g. the severity level for message type 'W' would be 'SIW'.

Method signature:

Parameter

Data Type

Semantic

IV_SEVERITY_UP_TO

/PLMB/SPI_MSG_SEVERITY

Relevant severity / message type (mandatory)

EV_SEVERITY_LEVEL

STRING

Resulting severity level (mandatory)

ADD_INSERT_MSG_TO_COLLECTOR

This method adds messages that occurred during an insert via method ADD_MESSAGE_ENH to the given Collector while using the appropriate reference type.

Method signature:

Parameter

Data Type

Description

IV_NODE_NAME

/PLMB/SPI_NODE_NAME

Node name

IT_MESSAGE

/PLMB/T_SPI_MSG

Table of messages

IT_IMPORT_DATA

INDEX TABLE

Import node data of INSERT

IT_EXPORT_DATA

INDEX TABLE

Export node data of INSERT

IT_NODE_ID_REL

/PLMB/T_SPI_NODE_REL

Relationship between rows of IT_IMPORT_DATA and IT_EXPORT_DATA

IO_COLLECTOR

/PLMB/IF_SPI_COLLECTOR

Collector input interface

Data Conversion

CONVERT_DATA_TO_XSTRING

This method converts the given data to an X-String.
This is needed to be able to use a common format whenever the data type cannot be set statically.
To extract the data again method CONVERT_XSTRING_TO_DATA can be used.

Example: The SPI uses the X-String conversion when combining the node ID with the message information. The data type of the message is known at design time but the node ID has a dynamic type, so therefore to fill both information into one structure an X-String component is used for the node ID.

Method signature:

Parameter

Data Type

Description

IG_DATA

ANY

Data that will be converted to an X-String

IV_COMPRESSION_ON

BOOLE_D

Allows compression of the data

EV_XSTRING

/PLMB/SPI_XSTRING

Resulting X-String

CONVERT_XSTRING_TO_DATA

This method extracts the data that was converted to an X-String via method CONVERT_DATA_TO_XSTRING.

Method signature:

Parameter

Data Type

Description

IV_XSTRING

/PLMB/SPI_XSTRING

X-String which contains the data

EG_DATA

ANY

Data that was extracted from the X-String

CONVERT_STRUCTURE_TO_XSTRING

This method offers the same functionality as method CONVERT_DATA_TO_XSTRING.

CONVERT_XSTRING_TO_STRUCTURE

This method offers the same functionality as method CONVERT_XSTRING_TO_DATA.

CNV_SEL_OPTIONS_TO_STRUCTURE

This method provides a simple conversion of QUERY select options to a data structure, which only supports sign 'I' and option 'EQ'.
The select options are filled into the according fields of the data structure.
When a duplicate select option is handed over or one that is not supported a message type 'X' is returned.

Method signature:

Parameter

Data Type

Description

IT_SELECT_OPTIONS

/PLMB/T_SPI_SELECTION_PARAM

Select options

ES_QUERY_DATA

ANY

Structure with fields that match the select options

ES_MESSAGE

/PLMB/S_SPI_MSG

Table of messages

CNV_STRUCTURE_TO_SEL_OPTIONS

This method provides a simple conversion of a data structure to QUERY select options.
All fields of the structure that are not blank are added to the select options using sign 'I' and option 'EQ'.

Method signature:

Parameter

Data Type

Description

IS_QUERY_DATA

ANY

Structure whose fields should be converted to select options

ET_SELECT_OPTIONS

/PLMB/T_SPI_SELECTION_PARAM

Select options

ES_MESSAGE

/PLMB/S_SPI_MSG

Table of messages

Metadata Related

GET_COMPONENT_DETAILS

This method provides to a given RTTI structure description object the component details that are for example used in the Metadata Provider.

Method signature:

Parameter

Data Type

Description

IO_STRUCTDESCR

CL_ABAP_STRUCTDESCR

RTTI structure description

CT_COMPONENT_DETAILS

/PLMB/T_SPI_COMPONENT_DETAILS

Component details

GET_OPERATION_CATEGORY

This method provides a set of flags that indicate the supported operations which are defined via the given operation group.

Method signature:

Parameter

Data Type

Description

IV_OPERATION_GROUP

/PLMB/SPI_OPERATION_GROUP

Operation Group

ES_OPERATION_CATEGORY

/PLMB/S_SPI_OPR_CATEGORY

Flags that indicate the supported operations

SET_OPERATION_CATEGORY

This method returns an operation group according to the given set of flags that indicate the supported operations.

Method signature:

Parameter

Data Type

Description

IS_OPERATION_CATEGORY

/PLMB/S_SPI_OPR_CATEGORY

Flags that indicate the supported operations

RV_OPERATION_GROUP

/PLMB/SPI_OPERATION_GROUP

Operation Group

GET_SIDEEFFECT_CATEGORY

This method provides to a given side-effect all affected groups of nodes that will be invalidated.

Method signature:

Parameter

Data Type

Description

IV_SIDEEFFECT

/PLMB/SPI_SIDEEFFECT

Side-effect

EV_MYSELF

BOOLE_D

Indicates that the side-effect will invalidate the node itself

EV_CHILD

BOOLE_D

Indicates that the side-effect will invalidate the node's children

EV_PARENT

BOOLE_D

Indicates that the side-effect will invalidate the node's parents

EV_SIBLING

BOOLE_D

Indicates that the side-effect will invalidate the node's sibling and their children

EV_OTHERS

BOOLE_D

Indicates that the side-effect will invalidate all other ABBs

EV_ALL

BOOLE_D

Indicates that the side-effect will invalidate all nodes of the own ABB

SET_SIDEEFFECT_CATEGORY

This method provides the according side-effect to the given invalidation requirements.

Method signature:

Parameter

Data Type

Description

IV_MYSELF

BOOLE_D

Indicates that the side-effect should invalidate the node itself

IV_CHILD

BOOLE_D

Indicates that the side-effect should invalidate the node's children

IV_PARENT

BOOLE_D

Indicates that the side-effect should invalidate the node's parents

IV_SIBLING

BOOLE_D

Indicates that the side-effect should invalidate the node's sibling and their children

IV_OTHERS

BOOLE_D

Indicates that the side-effect should invalidate all other ABBs

IV_ALL

BOOLE_D

Indicates that the side-effect should invalidate all nodes of the own ABB

RV_SIDEEFFECT

/PLMB/SPI_SIDEEFFECT

Side-effect

GOS Related

PERS_AREA_SET

This method triggers writing of services data.

Method signature:

Parameter

Data Type

Description

IV_PERS_AREA

/PLMB/GOS_PERS_AREA

Personal Area / Service name; constants have to be defined by the application that created the services; for services already shipped by GOS/SPI itself following constant is available: /PLMB/IF_GOS_C=>GS_C_PERS_AREA-... (mandatory)

IV_OTYPE_NAME

/PLMB/GOS_OBJECT_TYPE

Object type name (mandatory)

IT_NODE_ID

INDEX TABLE

Table of node IDs; GOS will internally convert these IDs according to the defined GOS key conversion into the GOS object ID format

IT_OBJECT_ID

/PLMB/T_GOS_INTERNAL_KEY

GOS object IDs (internal key format)

CT_MESSAGE

/PLMB/T_SPI_MSG

Message table in SPI format (mandatory)

Usage of Optional ID Parameters

It is mandatory to either supply the relevant object IDs in GOS format (IT_OBJECT_ID) or in node ID format (IT_NODE_ID), which can be handy when the call is implemented in the Service Provider, where typically the ID information is present in node ID and not GOS object ID format.

PERS_AREA_DELETE

This method deletes services data. The parameters match the ones of method PERS_AREA_SET.

GET_URL_FOR_ICON

This method provides a URL to the given icon.

Method signature:

Parameter

Data Type

Description

IV_ICON

/PLMB/GOS_ICON

Icon

EV_ICON_URL

STRING

URL

ADD_GOS_MESSAGES

This method offers the same functionality as method ADD_MESSAGES described above. The only difference is that the import table refers to GOS conversion messages. The changing table however is a regular SPI message table.
This method is very helpful if messages from a GOS conversion call need to be added to a "standard" SPI table.

GET_GOS_SEVERITY

This method calculates the overall severity of a GOS conversion message table, the "highest" message type wins: S < I < W < E < A/X.

Method signature:

Parameter

Data Type

Description

IT_MESSAGE

/PLMB/T_GOS_CNVMSG

GOS conversion Messages (mandatory)

EV_SEVERITY

/PLMB/SPI_MSG_SEVERITY

Overall severity of the message table

Miscellaneous

GET_USER_TEXT

This method provides user details like first name and last name for a list of users.

Method signature:

Parameter

Data Type

Description

IT_USR_NAMES

/PLMB/T_SPI_USR_NAME_ID

Table of users

ET_USER_LIST

/PLMB/T_SPI_USR_NAMES

Details about users like first name and last name

ET_USER_NAME_DISPLAY

/PLMB/T_SPI_USERNAME

Details about users like full name

EV_MSG_SEVERITY

/PLMB/SPI_MSG_SEVERITY

Message severity

CT_MESSAGE

/PLMB/T_SPI_MSG

Table of messages

IS_ABB_EXISTENT

This method checks if a certain Application Building Block ID (ABBID) exists.

Method signature:

Parameter

Data Type

Description

IV_ABBID

/PLMB/SPI_ABBID

ABBID to be checked

RV_RESULT

BOOLE_D

Indicates if the ABBID exists

Class /PLMB/CL_SPI_QUERY_UTIL

FILL_RESULT

This method processes a query result and enables self-programmed SP queries with standard functions:

  • Extract node IDs from query result data
  • Build relation between node ID records and result records (needed if node IDs retrieved with a sorted table)
  • Do mapping if fieldnames of the ID structure are different to the fieldnames of the result structure
  • Sort of result data
  • Paging

Method signature:

Parameter

Data Type

Description

IT_MAPPING

INDEX TABLE

Mapping of node ID fieldnames with result fieldnames

IS_OPTIONS

/PLMB/S_SPI_QUERY_OPTIONS

paging and Sort order

ET_NODE_ID

INDEX TABLE

Node IDs extracted from CT_NODE_DATA

ET_NODE_ID_REL

/PLMB/T_SPI_NODE_REL

Relation between node ID records and result data

CT_NODE_DATA

INDEX TABLE

Result data possibly changed by post-processing

EXPAND_SHLP_METADATA

This method creates the metadata according to a given DDIC search help while expanding collective search helps.

Method signature:

Parameter

Data Type

Description

IV_SHLPNAME

SHLPNAME

Name of a DDIC search help

IT_ID_COMPONENTS

/PLMB/T_SPI_F4_PARAM_MAP

Mapping between node ID components and DDIC search help export parameters

IT_SHLPNAME_RANGE

GTY_T_SHLPNAME_RANGE

Range to filter DDIC search helps

ET_QUERY_METADATA

/PLMB/T_SPI_F4_QUERY

DDIC search help query metadata

Constants

All fixed values that are used within the area of the SPI are defined at ABAP OO constant interfaces.

Metadata Related Constants – /PLMB/IF_MDP_C

This interface offers constants that are needed when defining or consuming metadata.

Constant

Description

GC_C_ACTION_NODE_NAME

Default node name for 'action' node (obsolete)

GS_C_ACTION_ID_RELEVANCE

Relevance of Node IDs for ACTION calls

GS_C_CARDINALITY

Cardinality of a node

GS_C_CRITERIA_ENTRY_KIND

Definition for QUERY criteria processing

GS_C_KEY_KIND

Key kind of an ABAP table type, e.g. used when defining Dynamic Metadata

GS_C_OPERATION_GROUP

Group of supported operations

GS_C_OPERATION_TYPE

Operation Types, like 'ACTION' or 'INSERT', e.g. used for defining initialization operations

GS_C_OPTION

ABAP select options (EQ, GE...), e.g. used when defining query metadata

GS_C_SIDEEFFECT

Side-effects, e.g. 'MYSELF_PARENT'

GS_C_SUPPORTED_SIGN

Supported sign in select options (I, E), e.g. used when defining query metadata

GS_C_TABLE_KIND

ABAP table type, e.g. used when defining Dynamic Metadata

GS_C_UPDATE_RELEVANT

Update relevance of a metadata node

GS_C_VERSION

Metadata Version, e.g. 'VERSION_703'

GC_C_SIDEEFFECT

Side-effects, e.g. 'MYSELF_PARENT' (obsolete)

Service Provider Related Constants – /PLMB/IF_SPI_C

This interface offers constants that are used within the Service Provider or when calling it.

Constant

Description

GC_GENERIC_SP_NAME

Name of the generic Service Provider (only used SPI internally)

GC_TIME_ZONE_UTC

UTC time zone

GS_C_ACCESS_METH

Service Provider method codes

GS_C_CLEANUP_REASON

Reason code for CLEAN_UP calls

GS_C_INVALIDATION_SCOPE

Scope of node invalidation on ID level

GS_C_INVALIDATION_REASON

Reason for node invalidation

GS_C_INVALID_NODE_PROCESSING

Definition of the node invalidation processing when instantiating a Connector

GS_C_MESSAGE_PROCESSING

Definition of the message processing when instantiating a Connector

GS_C_METHOD_NAME

Service Provider method names

GS_C_MODE

Mode (Display, Change, Insert)

GS_C_MSGTY

Message types (for SY-MSGTY)

GS_C_MSG_REF_TYPE

Message reference types

GS_C_MSG_VARIABLE

Message variables

GS_C_OPERATION_CATEGORY

Operation categories

GS_C_OPERATION_TYPE

Operation Types, like 'ACTION' or 'INSERT', e.g. used for controlling operation properties

GS_C_OPERATION_PROPERTY

Operation property options

GS_C_OPR_PRPTY_REF_TYPE

Operation property reference types

GS_C_PROPERTY

Field control options

GS_C_PROPERTY_MERGE_RULE

Property merge rule

GS_C_PROPERTY_PROCESSING

Definition of the properties processing when instantiating a Connector

GS_C_PRPTY_REF_TYPE

Field property reference types

GS_C_QUERY_OPTIONS

QUERY paging operators (obsolete)

GS_C_REASON_CODE

Reason codes for RETRIEVE errors

GS_C_REFERENCE_TYPE

All Reference Types

GS_C_SEVERITY_CATEGORY

Message severity category (e.g. 'ERROR_OR_WORSE' ~ 'EAX' ), helpful when evaluating messages based on a "minimum" message type

GS_C_SIGN

Sign of QUERY select options

GS_C_TARGET

Target buffer for initialization of the Collector

GS_C_PAGING_SUPPORTED

Paging of QUERY supported

  • No labels