Details
- 
        Type:Monitor 
- 
        Status: Closed
- 
            Priority: Major Major
- 
            Resolution: Fixed
- 
            Affects Version/s: None
- 
            Fix Version/s: 2021
- 
            Component/s: FIWARE-TECH-HELP
- 
            Labels:
Description
Created question in FIWARE Q/A platform on 20-04-2018 at 17:04
Please, ANSWER this question AT https://stackoverflow.com/questions/49945250/non-primitive-values-from-a-registered-content-provider-are-not-showing-a-value
Question:
Non-Primitive Values from a Registered Content Provider are not showing a value
Description:
I'm using the /v2/registrations endpoint to register a content provider with the legacyForwarding flag being set. Therefore my Content Provider is offering the v1/queryContext endpoint
When I am returning a simple value (Integer, String etc.) such as a temperature the data is added to the context correctly:
{
    "contextResponses": [
        {
            "contextElement": {
                "attributes": [
                ],
                "id": "urn:ngsi-ld:Store:001",
                "isPattern": "false",
                "type": "Store"
            },
            "statusCode": 
        }
    ]
}
However when trying to return an array of strings as shown from a Context Provider.
{
    "contextResponses": [
        {
            "contextElement": {
                "attributes": [
                ],
                "id": "urn:ngsi-ld:Store:002",
                "isPattern": "false",
                "type": "Store"
            },
            "statusCode": 
        }
    ]
}
I can see the request being sent in the log and I can retrieve the following entity:
{
    "id": "urn:ngsi-ld:Store:002",
    "type": "Store",
    "address": {
        "type": "PostalAddress",
        "value": "",
        "metadata": {}
    },
    "location": {
        "type": "geo:json",
        "value": "",
        "metadata": {}
    },
    "name": {
        "type": "Text",
        "value": "Checkpoint Markt",
        "metadata": {}
    },
    "tweets": {
        "type": "Array",
        "value": "",
        "metadata": {}
    }
}
As you can see the "tweets" value is blank, but the attribute exists and the type has been successfully received.
My question is how should I return an Array or an Object as a value from a Content Provider so that Orion is able to display the data received correctly?
Activity
| Field | Original Value | New Value | 
|---|---|---|
| Component/s | FIWARE-TECH-HELP [ 10278 ] | 
| Assignee | Jose Manuel Cantera [ jmcantera ] | 
| Assignee | Jose Manuel Cantera [ jmcantera ] | Jason Fox [ jason.fox ] | 
| Link | This issue relates to DATA-2084 [ DATA-2084 ] | 
| Status | Open [ 1 ] | In Progress [ 3 ] | 
| Status | In Progress [ 3 ] | Closed [ 6 ] | 
| Resolution | Fixed [ 1 ] | 
| HD-Enabler | Orion [ 10875 ] | |
| Description | Created question in FIWARE Q/A platform on 20-04-2018 at 17:04 {color: red}Please, ANSWER this question AT{color} https://stackoverflow.com/questions/49945250/non-primitive-values-from-a-registered-content-provider-are-not-showing-a-value +Question:+ Non-Primitive Values from a Registered Content Provider are not showing a value +Description:+ I'm using the /v2/registrations endpoint to register a content provider with the legacyForwarding flag being set. Therefore my Content Provider is offering the v1/queryContext endpoint When I am returning a simple value (Integer, String etc.) such as a temperature the data is added to the context correctly: { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "temperature", "type": "Number", "value": 27 } ], "id": "urn:ngsi-ld:Store:001", "isPattern": "false", "type": "Store" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] } However when trying to return an array of strings as shown from a Context Provider. { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "tweets", "type": "Array", "value": [ "String 1", "String 2" ] } ], "id": "urn:ngsi-ld:Store:002", "isPattern": "false", "type": "Store" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] } I can see the request being sent in the log and I can retrieve the following entity: { "id": "urn:ngsi-ld:Store:002", "type": "Store", "address": { "type": "PostalAddress", "value": "", "metadata": {} }, "location": { "type": "geo:json", "value": "", "metadata": {} }, "name": { "type": "Text", "value": "Checkpoint Markt", "metadata": {} }, "tweets": { "type": "Array", "value": "", "metadata": {} } } As you can see the "tweets" value is blank, but the attribute exists and the type has been successfully received. My question is how should I return an Array or an Object as a value from a Content Provider so that Orion is able to display the data received correctly? | Created question in FIWARE Q/A platform on 20-04-2018 at 17:04 {color: red}Please, ANSWER this question AT{color} https://stackoverflow.com/questions/49945250/non-primitive-values-from-a-registered-content-provider-are-not-showing-a-value +Question:+ Non-Primitive Values from a Registered Content Provider are not showing a value +Description:+ I'm using the /v2/registrations endpoint to register a content provider with the legacyForwarding flag being set. Therefore my Content Provider is offering the v1/queryContext endpoint When I am returning a simple value (Integer, String etc.) such as a temperature the data is added to the context correctly: { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "temperature", "type": "Number", "value": 27 } ], "id": "urn:ngsi-ld:Store:001", "isPattern": "false", "type": "Store" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] } However when trying to return an array of strings as shown from a Context Provider. { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "tweets", "type": "Array", "value": [ "String 1", "String 2" ] } ], "id": "urn:ngsi-ld:Store:002", "isPattern": "false", "type": "Store" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] } I can see the request being sent in the log and I can retrieve the following entity: { "id": "urn:ngsi-ld:Store:002", "type": "Store", "address": { "type": "PostalAddress", "value": "", "metadata": {} }, "location": { "type": "geo:json", "value": "", "metadata": {} }, "name": { "type": "Text", "value": "Checkpoint Markt", "metadata": {} }, "tweets": { "type": "Array", "value": "", "metadata": {} } } As you can see the "tweets" value is blank, but the attribute exists and the type has been successfully received. My question is how should I return an Array or an Object as a value from a Content Provider so that Orion is able to display the data received correctly? | 
| Fix Version/s | 2021 [ 12600 ] | 
| Transition | Time In Source Status | Execution Times | Last Executer | Last Execution Date | |||||
|---|---|---|---|---|---|---|---|---|---|
| 
 | 4d 15h 40m | 1 | Jason Fox | 25/Apr/18 9:46 AM | |||||
| 
 | 2m 16s | 1 | Jason Fox | 25/Apr/18 9:48 AM | 
 
	 
		                 
	 
	
2018-04-20 18:05|CREATED monitor | # answers= 0, accepted answer= False