SAS 9.1.3 Integration Technologies » Developer's Guide

Publish Package Interface
Publish/Retrieve Encoding Behavior
Publishing Packages
LDAP Channel Store Syntax
SAS Metadata Repository Channel Store Syntax
Retrieving Packages
Filtering Packages
Publishing Examples
Publishing in the Data Step
Publishing in a Macro
Publishing with FTP
Publishing Framework

Filtering Packages and Package Entries

When packages are published to channels, name/value filters can be used to limit the packages published to individual subscribers. Subscriber-specified name/value filters are compared to the name/value pairs in the published packages. If the filters match the package, the package is published to the subscriber.

Subscribers use the SAS Subscription Manager applet to specify default filters and per-channel override filters. The applet manages filtering attributes in the subscriber's LDAP entry.

Subscribers also use the Subscription Manager applet to specify a delivery transport. If a subscriber specifies a delivery transport of queue, that subscriber can specify additional filters to limit the package entries included in the packages published to that subscriber. Package entry or MIME type filters are compared to the entry type or MIME type of each package entry. If the package entry type or MIME type matches the subscriber's entry type or MIME type filters, that package entry is included in the package published to that queue subscriber.

Enabling Filtering When Publishing Packages

During package development, user-defined name/value pairs are added to packages in the PACKAGE_BEGIN CALL routine. Entry types are added to package entries automatically in the various INSERT CALL routines. User-defined MIME types are added to package entries in the INSERT_FILE CALL routine.

At publish time, filtering takes place when a package is published with the PACKAGE_PUBLISH CALL routine with a publishType of TO_SUBSCRIBERS.

Implementing Name/Value Filters

To implement name/value filters across your enterprise, the name/value pairs applied to packages must agree with the name/value pairs that appear in subscriber filters. Maintaining a global list of agreed-upon name/value pairs and including definitions and usage information for each name/value pair enables accurate package description and subscriber filtering in your enterprise.

The name/value filters used in your enterprise depend on the types of packages that you publish and on the types of subscribers that receive those packages. For example, you could define a channel called Maintenance that includes e-mail subscribers and an archive subscriber named MaintReports. You could add a name/value filter to the LDAP entry for the MaintReports archive subscriber that would refuse to accept packages that contain a name/value pair of noarchive. For this filter to be effective, packages published to the Maintenance channel would need to include the noarchive name/value pair in the appropriate way in order to keep unwanted packages out of the MaintReports archive. A global list of name/value pairs would help ensure that the filters and the packages both used the noarchive name/value pair appropriately.

A wide variety of syntax options for name/value filters gives subscribers many filtering options, including filtering based on logical relationships between multiple name/value pairs. For information about the syntax of name/value filters, refer to Specifying Name/Value Filters in the documentation for the Subscription Manager application.

For additional information about defining channels and name/value pairs for your enterprise, see Administering the Publishing Framework in the SAS Integration Technologies: Administrator's Guide. If you are using an LDAP directory server as your metadata repository, see Administering the Publishing Framework in the SAS Integration Technologies: Administrator's Guide (LDAP Version).

Implementing MIME-Type Filters

The mimeType filters are case-insensitive filters. Like name/value pairs, MIME types are user-defined and as such need to be maintained globally to ensure consistent filtering. See the INSERT_FILE CALL routine for a list of suggested MIME types.

Implementing Entry-Type Filters

Entry types are specified automatically in the various INSERT CALL routines. For a list of available package entry types, see the syntax description of the ENTRY_FIRST CALL routine.