Create Monitoring Profile
Product | D&B Direct 2.0, D&B Direct Onboard |
Product Code(s) | Not Applicable |
Options(s) | None |
Monitoring Available | No |
Interface | REST |
Method | POST |
Format(s) | JSON |
Service | Monitoring |
{version} | 8.0 |
8.0 Released on | February 15, 2019 |
This function allows a customer to specify which data layer (or portion thereof) should be monitored and the condition(s) that should trigger change notices.
A Monitoring Profile establishes the specific data fields within a given data layer that should be monitored, and the conditions under which a change event should be triggered.
Update History
- February 18, 2022 (vALL SOAP & REST): Defect fix to resolve monitoring registration failure for Non-US D-U-N-S.
- January 07, 2022 (vALL SOAP & REST): Defect fix to resolve Create Monitoring Profile failures for custom products.
- April 21, 2017 (vALL SOAP & REST): Version 7.1 is now available. Added ReturnSignificantChangeOnlyIndicator as a request element to Create, and Update Monitoring Profile features, and as a response element to List Monitoring Profile feature.
- February 17, 2017 (vALL SOAP & REST): Added elementPrevious support for numeric types in multiconditions for Create Monitoring Profile and Update Monitoring Profile for select elements. Multicondition for Create Monitoring Profile and Update Monitoring Profile now supports up to 20 change conditions.
- December 9, 2016 (vALL SOAP & REST): Version 7.0 is now available. ServiceVersionNumber element has been added as a request element in create monitoring profile, and as a request and response element in list monitoring profile, update monitoring profile, get monitoring profile, list change notices and list monitoring registration services.
- August 26, 2016 (vALL SOAP & REST): Multicondition for Create Monitoring Profile and Update Monitoring Profile now supports up to 10 change conditions.
- July 15, 2016 (v6.1 SOAP & REST)): New multi-condition values, ValueBecomesNULL and ValueBecomesNOTNULL, have been added for create monitoring profile and update monitoring profile.
- April 22, 2016 (v6.0 SOAP &REST): Changed the current implementation on the conditions, Value Goes Beyond and Value Goes Below, based on the ContinuousChangeNotificationIndicator. This establishes the following features: If ContinuousChangeNotificationIndicator is set to TRUE (by default), change notices are sent when the new value is less than or greater than the customer threshold. If ContinuousChangeNotificationIndicator is set to FALSE, change notices are sent only when the new value crosses through the customer threshold range relative to the former value.
- March 11, 2016 (v6.0 SOAP & REST)): Multiple conditions may now be specified for any one particular element in create monitoring profile and update monitoring profile. This feature is applicable for any monitorable numeric element.
Feature Request
IMPORTANT: Please see the new Online Services Security Enhancement Release, effective November 09, 2020.
Overview
When providing PCMElementXPATHText values, the format should be "//Organization/..." WITHOUT any spaces. Some data elements may only be monitored by the associated aggregate or attribute XPATH.
Example:
As displayed in documentation | Value in PCMElementXPATHText |
---|---|
OrderProductResponse { OrderProductResponseDetail { Product { Organization { Events { PublicFilingHeader { DisclaimerText | //Organization /Events /PublicFilingHeader /DisclaimerText |
Data Layer Entitlement
For customers in U.S. and Canadian markets, the API is provisioned for specific collections of products, reports, and/or features (collectively referred to as data layers) for production and trial usage. Entitlement is not required for testing in the sandbox environment.
- This function does not require entitlement for production and trial usage. Entitlement for monitoring is only required for the Add Monitoring Registration function, and for the data layers that will monitored.
Specification
Please refer to the list of products that may be included in the Monitoring process.
NOTE: To Create Monitoring Profiles with a specific ServiceVersionNumber of a product, please contact your local D&B Customer Service department/representative for the appropriate configuration.
Restriction: The sequence of Request Parameters submitted to POST/PUT operations currently MUST follow the order presented in this section. This applies to REST calls only.
Restriction: An XML namespace statement MUST be included as the first statement within the primary Aggregate of the request. Please refer to the Sample Request for an example. This applies to REST calls only.
POST https://direct.dnb.com/V8.0/monitoring/monitoringprofiles Content-Type: application/json Authorization: <MyToken> { "mon:CreateMonitoringProfileRequest": { "@xmlns$mon": "http://services.dnb.com/MonitoringServiceV2.0", "TransactionDetail": { "ApplicationTransactionID": "Test", "TransactionTimestamp": "2016-12-11T09:29:10Z" }, "CreateMonitoringProfileRequestDetail": { "MonitoringProfileSpecification": { "MonitoringProfileName": "DemoProfile", "DNBProductID": "DCP_PREM", "MonitoringLevel": "Level2", "ReturnChangedDataOnlyIndicator": "true", "ReturnSignificantChangeOnlyIndicator": "true" }, "InquiryReferenceText": { "CustomerReferenceText": "Ref Text" } } } }
Name | Characteristics |
---|---|
CreateMonitoringProfileRequest | Aggregate |
CreateMonitoringProfileRequest@xsi:schemaLocation | Attribute |
CreateMonitoringProfileRequest { TransactionDetail | Aggregate, Optional Records information necessary to process this request. |
CreateMonitoringProfileRequest { TransactionDetail { ApplicationTransactionID | string up to 64 chars., Optional A number assigned by the calling application to uniquely identify this request. |
CreateMonitoringProfileRequest { TransactionDetail { TransactionTimestamp | DateTimestamp, Optional The date and time when this request was created. When the request is from an intermediary, such as a workflow manager or service bus, this is the date and time when the message was sent to the D&B function, i.e., the date and time when the xml document was created by the requesting intermediary. |
END: CreateMonitoringProfileRequest } TransactionDetail | /Aggregate |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail | Aggregate, Required Records details of the request to create a profile, a set of events and their thresholds, used to monitor a DUNS or a set of DUNS. |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification | Aggregate, Required Records the preferences provided by the Customer/User on the monitoring parameters while enrolling for the monitoring service. |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringProfileName | string at least 1 chars. up to 64 chars. Pattern: {.*[^\s].*}., Required A name that is provided by the user to the profile. |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringProfileDescription | string up to 256 chars., Optional A string that records the description of the profile |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { DNBProductID | string up to 64 chars., Required Records the product code that is provided by the customer to create a profile |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { ServiceVersionNumber | string up to 10 chars., Optional A number that identifies the version of the Service. If not provided, the latest available Service version will be used for the profile creation. |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringLevel | MonitoringLevelTextEnum up to 16 chars., Required A alphanumeric string which determines the level of details that the customer will receive during a change event Possible values: Level1; Level2. Level2 provides change event notices along with a copy of the data layer; while Level1 only provides the notices. |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail | Aggregate, Optional |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { MonitoringElement | Aggregate, Required (Array) |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { MonitoringElement { PCMElementXPATHText | string up to 3000 chars., Required |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { MonitoringElement { MonitoringChanges | Aggregate, Required (Array) |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { MonitoringElement { MonitoringChanges { ChangeCondition | ChangeConditionEnum, Required Criteria to monitor an element.
Possible values: AnyChange; ValueIncreaseByPercentage; ValueDecreaseByPercentage; ValueChangeByPercentage; ValueIncreaseBy; ValueDecreaseBy; ValueChangeBy; ValueGoesBeyond; ValueGoesBelow; ValueEquals; DateChangeBy; DateEquals; MultiCondition, ValueBecomesNULL, ValueBecomesNOTNULL The Continuous Change Notification Indicator is considered for values: ValueGoesBeyond and ValueGoesBelow. Refer to the MultiCondition table for more details. |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { MonitoringElement { MonitoringChanges { ChangeValue | string, up to 3000 chars., Optional Threshold value corresponding to monitoring criteria. |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { MonitoringElement { MonitoringChanges { ContinuousChangeNotificationIndicator | boolean, Optional When 'true' (default), change notices are sent when the new value is less than or greater than the customer threshold. When 'false', change notices are sent only when the new value crosses through the customer threshold range relative to the former value. |
END: CreateMonitoringProfileRequest } CreateMonitoringProfileRequestDetail } MonitoringProfileSpecification } MonitoringElementDetail } MonitoringElement } MonitoringChanges | /Aggregate |
END: CreateMonitoringProfileRequest } CreateMonitoringProfileRequestDetail } MonitoringProfileSpecification } MonitoringElementDetail } MonitoringElement | /Aggregate |
END: CreateMonitoringProfileRequest } CreateMonitoringProfileRequestDetail } MonitoringProfileSpecification } MonitoringElementDetail | /Aggregate |
END: CreateMonitoringProfileRequest } CreateMonitoringProfileRequestDetail } MonitoringProfileSpecification | /Aggregate |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { ReturnChangedDataOnlyIndicator | boolean When 'true' indicates that Change Notices will only include information for fields whose value has changed. When 'false' indicates that Change Notices will include information for all fields, regardless if the values have changed. The latter scenario applies when a whole data layer and/or aggregate is being monitored. |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { MonitoringProfileSpecification { MonitoringElementDetail { ReturnSignificantChangeOnlyIndicator | boolean, Optional When 'true' indicates that Change Notices will only include information for fields whose value has actually changed and insignificant/immaterial changes like whitespace, type case changes are ignored. When 'false' indicates that Change Notices will include change events regardless if the values change is immaterial/insignificant or not. |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { InquiryReferenceText | Aggregate, Optional Records data that allows the customer to specify information to be linked to the request in order to support subsequent order reconciliation. |
CreateMonitoringProfileRequest { CreateMonitoringProfileRequestDetail { InquiryReferenceText { CustomerReferenceText | string up to 240 chars., Optional(Up to 5x) A freeform reference string provided by the customer to be linked to the product in order to support subsequent order reconciliation. |
END: CreateMonitoringProfileRequest } CreateMonitoringProfileRequestDetail } InquiryReferenceText | /Aggregate |
END: CreateMonitoringProfileRequest } CreateMonitoringProfileRequestDetail | /Aggregate |
END: CreateMonitoringProfileRequest | /Aggregate |
Endpoint
Use the following endpoint for requesting this feature. The {version} is dependent on the underlying service delivering the response.
Endpoint (Monitoring) |
---|
POST https://direct.dnb.com/V{version}/monitoring/monitoringprofiles |
Testing
This operation will return a static set of results in the D&B Direct test environment (sandbox), regardless of the request parameters.
Feature Response
NOTE: The D&B Direct REST implementation uses the BadgerFish approach for JSON with some minor variations.
Specification
The following is a list of the possible data fields returned by this operation in the JSON response. Samples are provided for testing successful and failed retrieval, and to demonstrate the basic layout of a response. The data returned in samples may not represent actual values that this feature will deliver.
NOTE: The D-U-N-S Number returned in the response will be a nine-digit zero-padded, numeric value.
{"CreateMonitoringProfileResponse": { "TransactionDetail": { "ApplicationTransactionID": "Test", "ServiceTransactionID": "Id-bc0b4058e9e70000b6a0040013a2844a-1", "TransactionTimestamp": "2016-12-11T09:29:10Z" }, "TransactionResult": { "SeverityText": "Information", "ResultID": "CM000", "ResultText": "Success" }, "CreateMonitoringProfileResponseDetail": {"MonitoringProfileDetail": { "MonitoringProfileName": "DemoProfile", "MonitoringProfileID": 9780 }} }}
Response Codes & Error Handling
Successful service requests will return a CM000 response code in the TransactionResult ResultID field. Otherwise, one of the D&B Direct standard response codes will be returned.
This operation may return the following response codes: CM001, CM002, CM004, CM007, CM014, CM023, SC001-SC009.
D&B Direct 2.0 API requests are provided on a metered basis; and may require entitlement prior to use in the production environment. In addition, a concurrency limit (QPS) is monitored to ensure that it is not exceeded. An error code will be returned in the event that a transaction is throttled.
While this operation is provided on a metered basis, usage is tracked; however, no billing for successful calls is recorded.
Operation-specific supplemental response code explanations:
CM001 | Blank value passed for PCMElementXpath. |
CM002 | Any schema validation failure (e.g. elements that are mandatory in the schema are not present in the request, Sequence of the element is not matching in the schema, Data type mismatch or Invalid notification Level). |
CM002 | The format of this request is invalid. Please refer to Online Documentation. |
CM004 | Internal D&B system error. Please try again or contact your local Customer Service Center. |
CM007 | PCMElementXpath is not applicable for the product. |
CM007 | Value provided for element ’ServiceVersionNumber’ is not available for the product. |
CM014 | Product Not available |
CM014 | Invalid Product Code provided in the request. Please refer to Online Documentation. |
CM023 | Duplicate Profile Name |
CM023 | Duplicate record cannot be created |
CM001 | The given request, or element contains an invalid value. |
CM001 | Given expression is invalid if specified operator is wrong in the expression. |
CM001 | Given expression is invalid if specified operant is wrong in the expression. |
CM001 | Given expression is invalid if specified brace is wrong in the expression. |
CM001 | Given expression is invalid if the number of operators given in the multi-condition exceeds the limit. |
Feature Notes
Here are some constraints of the <ChangeCondition> component in the Monitoring profile.
- Profiles may have a single change condition or multiple change conditions per element.
- The default condition for any element is AnyChange
- <ChangeValue> values should match the data type of the element being monitored
The following table highlights the condition options applicable for each data type:
Data type | Supported change condition |
---|---|
String | AnyChange |
Numeric | AnyChange |
String | ValueEquals |
Numeric | ValueEquals |
Numeric | ValueIncreaseByPercentage |
Numeric | ValueDecreaseByPercentage |
Numeric | ValueChangeByPercentage |
Numeric | ValueIncreaseBy |
Numeric | ValueDecreaseBy |
Numeric | ValueChangeBy |
Numeric | ValueGoesBeyond |
Numeric | ValueGoesBelow |
Boolean | AnyChange |
Date | AnyChange |
Date | DateChangeBy |
Date | DateEquals |
EnumString | AnyChange |
EnumString | ValueEquals |
Numeric/ String | MultipleCondition |
Multiple Conditions
Multiple conditions may be specified for any one element, currently restricted to up to twenty conditions. Multiple conditions may not be combined. The following operators support multicondition scenarios.
NOTE: Some of the following operators support single condition scenarios, as well as, multicondition scenarios.
Supported Operators
Operators | Description | Data Types Supported | Operands Supported |
---|---|---|---|
AND, And, and | AND condition | ||
OR, Or, or | OR condition | ||
= | equal to | Numeric/ String | element, elementPrevious* |
!= | not equal to | Numeric/ String | element, elementPrevious* |
< | less than | Numeric | element, elementPrevious* |
> | greater than | Numeric | element, elementPrevious* |
<= | less than or equal to | Numeric | element, elementPrevious* |
>= | greater than or equal to | Numeric | element, elementPrevious* |
ValueIncreaseByPercentage | ValueIncreaseByPercentage | Numeric | element |
ValueIncreaseByPercentage | ValueDecreaseByPercentage | Numeric | element |
ValueIncreaseByPercentage | ValueChangeByPercentage | Numeric | element |
ValueIncreaseBy | ValueIncreaseBy | Numeric | element |
ValueDecreaseBy | ValueDecreaseBy | Numeric | element |
ValueChangeBy | ValueChangeBy | Numeric | element |
ValueGoesBeyond | ValueGoesBeyond | Numeric | element |
ValueGoesBelow | ValueGoesBelow | Numeric | element |
ValueEquals | ValueEquals | Numeric/ String | element, elementPrevious |
ValueBecomesNull | ValueBecomesNull | Numeric/ String/ Boolean/ Date | element |
ValueBecomesNotNull | ValueBecomesNotNull | Numeric/ String/ Boolean/ Date | element |
Supported Operands
Operators | Description | Data Types Supported |
---|---|---|
element | Represents the new value of the element after the change | Numeric, string |
elementPrevious* | Represents the previous value of the element before the change | Numeric, string NOTE: *Only the following numeric elements are supported. If you want to create a rule with elementPrevious for other numeric elements, please contact the D&B Direct Customer Support team.
|
Sample Multicondition Expression
Example | Operators | Operands |
---|---|---|
((element < 25) AND (element > 100)) | <, > | element, 25, 100 |
An error code will be returned in the event that a given expression is invalid in the request.