The CSArticleMultiple class includes methods for the retrieval of several articles' details.
Note that it is not possible to use CSArticleMultiple to create, update or delete an article. This functionality is provided by making direct iCM requests using the ColdFusion API's iCM_obj_articleUpdate.
Unlike CSArticle, where an article or template ID must be provided, setting no properties will return all articles in the database. Setting almost any of the properties below will only return articles that have those properties. Many of the properties can be used in combination with each other to build up a filter.
Typically, only those articles that are in date and currently turned "on" will be retrieved. However, if IgnoreVisibility is set to true, any articles that have been turned "off" and/or that are not in date will also be included.
Each retrieved article is stored as a CSArticle instance within this CSArticleMultiple instance - ie as a CSArticle object in an array.
Article Security
If your articles (or any parent) are secured you'll need to provide a valid UserID to access the full article details. Alternatively you can use OverrideSecurity to return the article details (minus the body text) even if the security checks fail.
Methods
Parameters must use the get-set structure described in the introduction - Java API (CSObjects).
- get a string (comma separated) that lists the properties whose values should be returned, an asterisk to indicate that all properties should be returned, or an empty string to return nothing
- set the properties which should be set before the specified method is performed
CSArticleMultiple_get
Retrieves an array of CSArticles as objects.
Request Parameters
Name | Type | Description |
---|---|---|
get | String | A comma separated list of properties to return |
set | Object | An object containing any of the properties listed below |
In this request we want to know the article headings of all of the articles beneath article 16, up to a depth of 3 (ie child articles, their child articles and their child articles)
this.callWorkerMethod("icmapi", "CSArticleMultiple_get", {
"get": "ArticleHeading",
"set": {
"ParentArticleIDList":"16",
"LevelDepth":3,
}
});
Response
Name | Type | Description |
---|---|---|
data.multipleItemData | Array of Objects | Each object in the array represents one article. Each contains the properties in the get request |
We can see the article headings of the three levels are articles requested.
{
"result": [{
"_ItemClass": "CSArticle",
"ArticleHeading": "An Event"
}, {
"_ItemClass": "CSArticle",
"ArticleHeading": "A Child Event"
}, {
"_ItemClass": "CSArticle",
"ArticleHeading": "A location"
}]
}
Properties
Property | Type | Description |
---|---|---|
ArticleList | String | A list of IDs of the articles to be retrieved. If ArticleList is provided, other key properties, such as Changed, ExcludeMetadataIDs and ExcludeTemplateList will be ignored |
Changed | Boolean | Defaults to false. If true, used in conjunction with ChangedAction, ChangedEndDate, ChangedSignificantly and ChangedStartDate. Changedsignificantly must be provided. May be used as a filter in conjunction with other key properties |
ChangedAction | Integer | 1 - returns articles that have been created 2 - returns articles that have been updated 1|2 returns both. Defaults to both |
ChangedEndDate | DateTime | Articles changed/updated before this date (inclusive) will be retrieved, for example "2018-01-12T10:29:59Z". Defaults to today |
ChangedSignificantly | Boolean, Required if Changed: true | true - only articles that have been flagged as "significant" on create/update will be returned. false - all articles will be returned |
ChangedStartDate | DateTime | Articles changed/updated after this date (inclusive) will be retrieved, for example "2018-01-12T10:29:59Z". Defaults to seven days prior to today |
DetailLevel | Integer | The level of detail returned. One of: 1 - LEVEL_ID: ArticleID only 2 - LEVEL_SUMMARY: ArticleID, ArticleHeading, ArticleIntroText, TemplateID, ArticleDisplay, ArticleLinkText and ArticleSummary 3 - LEVEL_DETAIL: All article data, except for ArticleText, ArticleTextAdditional and related content IDs 4 - LEVEL_ALL: All article data, except for related content IDs 5 - LEVEL_ALL_PLUS_RELATED: All article data The default level is 4 |
EventList | String | A comma separated list of event IDs. Use EventList to retrieve a list of articles that have ALL of the events in the list related to them (the articles returned may have additional events not in the list related to them). May be used as a filter in conjunction with other key properties |
EventOptionalList | String | A comma separated list of event IDs. Use EventOptionalList to retrieve a list of articles that have ANY of the events in the list related to them. May be used as a filter in conjunction with other key properties |
ExcludeFailedItems | Boolean | The TolerateNotFound and OverrideSecurity properties make it possible to make requests for items which are not found (possibly due to display criteria) or inaccessible due to security without an exception being thrown. If these flags are set then any inaccessible items will be included in the results list with their Status set to DOES_NOT_EXIST or SECURE_ACCESS_DENIED. If the ExcludeFailedItems flag is set then any inaccessible items will not be included in the results list. Note that it will still be necessary to set TolerateNotFound and/or OverrideSecurity as required. |
ExcludeMetaDataIDs | String | A comma separated list of metadata IDs. Returns details of all the articles that do NOT have any of the specified metadata values as related content. May be used as a filter in conjunction with other key properties |
ExcludeTemplateList | String | A comma separated list of template IDs. Returns details of all the articles that do NOT use the specified templates. May be used as a filter in conjunction with other key properties |
ExtensionDataReqd | Boolean | If true the article's extension data, the "article extras", will be returned in the ObjExtensionData property |
FilterColumn | String | If provided will filter the returned articles. Can be used on its own or as a filter in conjunction with other key properties. FilterLogic and FilterValue must be provided. See below for possible values |
FilterLogic | String, Required if FilterColumn: true | Compares the FilterColumn and FilterValue. Must be one of "=", "<", "<=", ">", ">=", "LIKE" or "BETWEEN". See below |
FilterValue | String or DateTime, Required if FilterColumn: true | The single value, or lower value of a range in a filter |
FilterValue2 | String or DateTime | The upper value of the filter range. Only used if FilterLogic is "BETWEEN" |
FriendlyURL | String | Returns the details of articles with this friendly URL. There may be more than one of the friendly URL is used on multiple subsites |
GroupList | String | A comma separated list of website user groups IDs. Set in conjunction with UserID (otherwise serves no purpose) |
IgnoreVisibility | Boolean | Set to true if the articles are to be retrieved by the get method regardless of display dates and display flag. If false an article will only be retrieved if its display start and end dates are current and its display flag is set to 'on'. Default false |
LevelDepth | Integer | Used with ParentArticleIDList to set the depth of the child articles returned. Setting 1 would only retrieve the child articles, 2 the child and grandchild articles etc. Default 1 |
MetaDataIDs | String | A coma separated list of metadata IDs. Use MetadataIDs to retrieve a list of articles that have ALL of the metadata values in the list related to them (the articles returned may have additional values not in the list related to them). May be used as a filter in conjunction with other key properties |
MetaDataOptionalIDs | String | A comma separated list of metadata IDs. Use MetaDataOptionalList to retrieve a list of articles that have ANY of the metadata values in the list related to them. May be used as a filter in conjunction with other key properties |
OverrideSecurity | Boolean | If set true, article details (minus the article text) will be returned even if security checks fail. Default false |
ParentArticleIDList | String | A comma separated list of article IDs. Returns all of the child articles of all of the articles in the list. Use with LevelDepth to set the depth of the article tree returned |
PathArticleID | Integer | Returns the details of the specified article, plus the details of all parent/grandparent articles in order, back to (and including) the site homepage. Will include articles with ArticleDisplay:false |
RelatedArticleID | Integer | Returns the details of all articles related to the article ID provided. Articles will be ordered as they are in iCM, but may be sorted. May be used as a filter in conjunction with other key properties |
RootArticleIDList | String | A comma separated list of root article IDs. If set, the get request will only be performed on articles beneath the specified articles |
SortOrder | String | Sorts the returned articles. Use ASC or DESC to indicate the direction of ordering for a particular sort order, for example "ArticleHeading ASC". If not set, articles are returned in the order they are positioned in iCM. Sorting options include: ArticleID, ArticleHeading, ArticleIntroText, ArticleDate, ArticleDisplayDate, ArticleDisplayEDate, ArticleTemplateID, ArticleUserID, LastModifiedDate |
SuggestedArticleID | Integer | Returns suggested articles for the provided article ID. Serves no purpose if the suggester is not being used |
TemplateList | String | A comma separated list of template IDs. Return details of all articles using the specified templates |
TolerateNotFound | Boolean | By default, if a requested article is not found a CSNotFoundException will be raised. Set the TolerateNotFound property to true to prevent these exceptions from being generated. If this flag is set, any articles not found will be included in the list of populated articles with a Status of DOES_NOT_EXIST. The associated article content will be undefined |
UserID | Integer | Specifying UserID in combination with other key properties will will only return the requested article details if the user passes any security set on the article. If the article is not secure, this has no effect. If the article is secure and the UserID does not have access, a security exception is thrown |
Filters
A FilterValue can be tested against the FilterColumn property using the defined FilterLogic.
The available FilterColumn properties are:
Name | Description |
---|---|
ArticleID | Filter by article ID |
ArticleHeading | Filter by article heading |
ArticleIntroText | Filter by article intro text |
ArticleDate | Filter by article creation date |
ArticleDisplayDate | Filter by article display start date |
ArticleDisplayEDate | Filter by the article display end date |
ArticleTemplateID | Filter by the article template ID |
ArticleUserID | Filter by the unique identifier of the last iCM user to update the article |
LastModifiedDate | Filter by date on which the article was last modified |
The logic operators are:
Operator | Description |
---|---|
= | Equals. An exact match between the contents of the FilterColumn and FilterValue |
< | Less than. Will find a match if the contents of the FilterColumn property is deemed to be less than the value of the FilterValue property |
<= | Less than or equal. Will find a match if the contents of the FilterColumn property is deemed to be less than or equal to the value of the FilterValue property |
> | Greater than. Will find a match if the contents of the FilterColumn property is deemed to be greater than the value of the FilterValue property |
>= | Greater than or equal. Will find a match if the contents of the FilterColumn property is deemed to be greater than or equal to the value of the FilterValue property |
LIKE | Compares the contents of the FilterColumn property to the value of the FilterValue property. Wildcards can be inserted using % |
BETWEEN | Will find a match of all items between the FilterValue and FilterValue2 |
Filter Example
In this example, all articles with the letter sequence "test" anywhere in their heading will be returned.
"set": {
"FilterColumn":"ArticleHeading",
"FilterValue":"%test%",
"FilterLogic":"LIKE"
}