This documentation supports the 9.1 version of Remedy Action Request System.

To view the latest version, select the version from the Product version menu.



You can continue to use C APIs to customize your application, but C APIs are not enhanced to support new capabilities provided by Java APIs and REST APIs.


Takes an entry ID with a list of input field values, executes filter objects, and returns a list of output fields without writing the specified entry to the database. Thus, it eliminates the ARSetEntry call, ARGetEntry call, the ARDeleteEntry call, and several filters.

This function can work with an BMC Remedy AR System web service to obtain external services, or with a Set Fields filter action to consume an internal BMC Remedy AR System service.


The permissions in workflow use system permissions, so the ARServiceEntry function is not directly involved in modifying the current entry. Therefore, no issue exists with permissions on the input fields. Any field in the input list can be used in the workflow.

For the output fields, the system returns data based on the access privileges of the user that you specify for the control parameter. User permissions are verified for each specified field. The system returns values for accessible fields, and it returns warning messages for fields the user cannot access.


#include "ar.h"
#include "arerrno.h"
#include "arextern.h"
#include "arstruct.h"

int ARServiceEntry(
   ARControlStruct *control,
   ARNameType formName,
   AREntryIdList *entryId,
   ARFieldValueList *inputFieldList,
   ARInternalIdList *idList,
   ARFieldValueList *outputFieldList,
   ARStatusList *status)

Input arguments


The control record for the operation. It contains information about the user requesting the operation, where that operation is to be performed, and which session is used to perform it. The user and server fields are required.


The name of the form where the service is performed.


The ID of the entry to be used in the transaction. The function does not update the entry; it simply uses it to get values (which are not defined after the filter runs).

If an output mapping's field is undefined and an entry ID is specified, a database call is required to retrieve the field value from the database. If entry ID is not present, database calls are not required, and the undefined field's value is NULL. (An undefined field value is one that is neither present in inputFieldList nor in the transaction.)


The system identifies entries in join forms by concatenating the entry IDs from the member forms. As a result, an entry ID can consist of one or more values of type AREntryIdType and, therefore, is represented by the AREntryIdList structure.


A list of one or more field/value pairs (specified in any order) that identifies the new data for the entry. Values must be of the data type defined for the field or have a data type of 0 (AR_DATA_TYPE_NULL).


A list of zero or more internal IDs that specify the fields to retrieve. Specify NULL for this parameter (or zero fields) to retrieve all (accessible) fields. Specify NULL for both this parameter and the outputFieldList parameter if you do not want to retrieve any fields. To minimize network traffic, specify only the fields that you need if you do not require the data for all fields. If an attachment field is specified in the list, only its name, size, and compressed size are returned. Use ARGetEntryBLOB to retrieve the contents of the attachment.

Return values


A list of zero or more field/value pairs that identifies the data for the specified entry. The fields are returned in the order specified by idList. If the user does not have permission for a specified field or the field does not exist, the system does not return a value for the field/value pair. Specify NULL for this parameter if you do not want to retrieve any field data.


A list of zero or more notes, warnings, or errors generated from a call to this function.

Was this page helpful? Yes No Submitting... Thank you