REST API issues and in bulk

Hi all

I'm just getting started on a new integration between Eloqua and our CRM system. For now, I'm mainly interested in export of Contacts of Eloqua.

I have 2 questions about the API REST Eloqua:

1 search Contacts on most of the works of fields very well. However, some fields cause a 500 internal server error. For example, dateCreated and dateModified seem to cause this. I'm doing something wrong, or is this a known problem? I'll try the following:

GET /Api/rest/1.0/data/contacts?search=C_DateModified%3D1389988359

2. in the JSON results returned by a search for Contact, it seems that most of the fields are returned in the array "fieldValues can only be". It works well, and I learned how to search the corresponding identification field definitions in the results. However, a dozen of fields returned in a different format to the root level (for example updatedAt, accountName, businessPhone, country, emailAddress, firstName, lastName, etc.). I find that this difference makes it difficult to work with the API constantly. I don't know how these level fields root in correlation with their field definitions. Is it possible to request only * fields all be returned in the array fieldValues can only be?

I also have a question about filters in the API in bulk:

3. in the creation of export for export of Contacts, it is possible to specify a filter selection, for example:

'filter': {'FilterEnsemble': 'valueGreaterThanComparisonValue', 'value': '{{Contact.Field (C_DateModified)}}', "comparisonValue": "2014-02-05 15:36:58"}

It is possible to specify several filters in this way? (And if so, can we carry out AND / OR operations on them?) Or several selection criteria must be made using a filter of Segment?

If a Segment filter is needed, I guess I'll have to programmatically create a new for each export to us (and then delete it as well as export) since the dateModified interests us will change each time you export. Doesn't that sounds good, or there at - it a way to create a "reusable" Segment in which I could just move to the date desired by each invocation?

Edit: I have another question about filters, so I'll add it here:

4 use the filter question #3 above, I find that Eloqua will return the contacts with a value of C_DateModified 2014-02-05 15:36:58 (note that this is not * superior * 2014-02-05 15:36:58, so I'm not expecting to see these records returned). Is this a bug or expected behavior? My guess is that the Eloqua platform stores internal dates and times with millisecond precision, but delivering or floored in the second round. In this case, the documents in question have no doubt C_DateModified a value slightly greater than 2014-02-05 15:36:58 (for example 15:36:58.342) so the logic is technically correct. Is there a way query/request dates and times to the millisecond precision?


To give in this context, I am train to the query to export contacts to our CRM system. A process executes periodically and ask all the contacts that have been updated since the last run. I don't want to take the risk of lack of contact updated due to minor timing problems, so my plan was to set up the C_DateModified filter for each series to be larger than the latest value C_DateModified returned from the previous run. This approach is upset about the problem described however. Is there a better way to do this?

Thanks for any help!

Post edited by: Lorne McIntosh

Hi Lorne,

With regard to some of your questions:

1. to perform this kind of search, use GET Api/rest/1.0/data/contacts?search='modifiedAt>3/27/2014'

Research infrastructure will accept generally field research by their internal name, but for certain system-level fields, they are exposed in the top level 'attributes' with specific naming conventions and this is one of them. Company is another example.

2. This behavior is similar to the above. Some of these root-level or "attribute" fields are there because this end point is designed for use by the application, in which case it must load the most relevant contact on a depth minimum = optimized call fields. There is no way to get all the fields of the table fieldValues can only be because the assumption is that if you do a depth = complete call to get all the data would you duplicate data recovery. If the entire structure of the returned JSON was to change this would just lead to other coding challenges. If it is a major concern, then using Bulk would be your alternative.

3. this comparison filter only supports the basic queries. No advanced logic or wildcards. You must wear a contact filter and then reference it in your definition of export in bulk, if you want something more complex. They can be reused, but it depends on the logic. If you simply all contacts that have been modified in the last 24 hours and met other criteria, you can let the filter unchanged. If you want to control the precise date time in the query itself and is not in your code that executes the query at the right time (to avoid gaps) then you will need to continually update the filter through REST conditions. If you create a new filter every time rather than update it, then you need to update (or create a new) export definition that the id of the filter will change.

4. Unfortunately not. Even if you can interview during the time Unix, it is given in seconds not ms (e.g. 1375449678 against 1395776202000). The accuracy of ms would exist in the db level, which explains why the query performs this way for what is expected.

Hope this helps to clarify,

Bojan

Tags: Marketers

Similar Questions

  • C#, UCCX, Rest API, PUT (update a resource) and not taken media Type supported

    Hi, I'm developing an application to update the skills of resources with the REST API.

    I can get all the values I want to (GET), but when I try to update a resource using PUT, and then I get a "415 Unsupported Media Type" webException.

    I discovered that c# / UCCX works with demand. MediaType (instead of request. ContentType).

    I got this error when I tried to GET the data. He now works for the GET.

    But to PUT it, I got the error. Method is defined as SAID, MediaType = "application/xml".

    I tried to empty, ' text/xml '...

    Looked on the internet, Web sites, saying always specify ContentType/MediaType = "application/xml", I have already done.

    I also got the same error if I try an application COULD and without sending data.

    Thanks for your help!

    public string MakeRequest()
    {
    var request = (HttpWebRequest) WebRequest.Create (EndPoint);
    request. Credentials = new System.Net.NetworkCredential (login, password);
    request. Method = Method.ToString ();
    request. ContentLength = 0;
    request. Accept = ContentType;
    request. MediaType = ContentType;
                
    #region so PUT
    If (! string.) IsNullOrEmpty (PostData) & method == HttpVerb.PUT)
    {
    encoding of var = new UTF8Encoding();
    PostData = PostData.Replace ("\n", "");
    var bytes = Encoding.UTF8.GetBytes (PostData);
    request. ContentLength = bytes. Length;
                    
    using (var writeStream = request. GetRequestStream())
    {
    writeStream.Write (bytes, 0, bytes.) (Length);
    }
    }
    #endregion

    Try
    {
    assistance (response var = (HttpWebResponse) request. GetResponse())
    {
    var responseValue = string. Empty;

    If (answer. StatusCode! = HttpStatusCode.OK)
    {
    var message = String.Format ("request failed. Received HTTP {0}", response. StatusCode);
    throw new ApplicationException (message);
    }

    Enter the answer
    using (var responseStream = response. GetResponseStream())
    {
    If (responseStream! = null)
    using (var = new StreamReader (responseStream) Player)
    {
    responseValue = reader. ReadToEnd();
    }
    }

    Return responseValue;
    }
    }
    catch (WebException wex)
    {
    error string = wex. Message;
    Return ' ';
    }

    OK you got, in this case, post your request in the Sub forum as well which is sought after by developers and you can you expect a concrete answer/explanation on the same

    https://communities.Cisco.com/community/Developer/Express-configuration-API

    Concerning

    Deepak

  • Mapping and querying objects for Contact with REST Api

    Hi all

    We are hoping to get some details on the DataCard management defined via REST API. Our implementation goal is to create Contacts and add the custom for each Contact object or to be more precise, add a set of map data for each Contact.

    At the present time, to associate a map Data Set (or custom object) to an existing contact, we provide a suite of fields in the custom when creating custom object object:

    new CustomObjectField  
    {
                                                                    name = "MappedEntityType",
                                                                    dataType = Enum.GetName(typeof(DataType), DataType.numeric),
                                                                    type = "CustomObjectField",
                                                                    defaultValue = "0"
                                                                },
                                                             new CustomObjectField
                                                                {
                                                                    name = "MappedEntityID",
                                                                    dataType = Enum.GetName(typeof(DataType), DataType.numeric),
                                                                    type = "CustomObjectField",
                                                                    defaultValue = "<ContactId>"
                                                                }
    
    

    This is the right approach? This is based on the information provided here: http://topliners.eloqua.com/community/code_it/blog/2012/05/31/eloqua-api-how-to-mapping-a-data-card-to-an-entity.

    The REST API would query the CustomObjects using the MappedEntityId value for the subsequent updates? If so, pointers on how to approach that?

    Thanks to ad.

    The REST API does not support this.  With the upcoming release of Eloqua, you will be able to update the MappedEntityID, as a query it.

  • Perspective and visitors to the information using the REST API

    According to this post (Eloqua graphics API), visitors and prospects information is not available with the Eloqua REST API.

    With the Eloqua REST API there is a field that indicates whether a contact is a prospect or visitor?

    Hi Raghu,

    There is a new endpoint API (available with the Summer of Eloqua version), which allows you to retrieve a visitor profile.

    Please find some information on its use here: Eloqua API REST - recovery of visitor profiles

    T.J.

  • vCOPs and REST API

    VCOPs currently allows the coming data via the REST API?

    VCOps currently allows its data available through the REST API?

    If this isn't the case, will be the version 6.0 have this feature?

    RV Ops 6.x see this thread:

    Integration of vCO and vCOps

  • REST API and networks

    Is is possible to change an external network via the REST API?  In my view, there is a network/admin/GET / {id} and a PUT/admin/network / {id}, but GET back an ExternalNetworkType then PUT wants an OrgVdcNetworkType.  Obtaining, changing only the description and then gives me a UNSUPPORTED_MEDIA_TYPE error, which I guess is the incompatibility of element type?

    vCloud 5.1

    Thank you!

    You must provide the type of content appropriate for all PUT them and POST request

    To change ExtNet use the following content type:

    Content-Type: application/vnd.vmware.admin.vmwexternalnet+xml
    
    To Update Extnet,
    
    1. Get all Extnets
    

    https://x.x.x.x/API/admin/extension/externalNetworkReferences

    2. Select the extNet you want to update

    PUT https://x.x.x.x/api/admin/extension/externalnet/>
    Content-type:application/vnd.vmware.admin.vmwexternalnet+xml;      Charset = UTF-8

  • vCO 5.5.2 and vCAC 6.1 plugin error REST API

    Hello

    I get an error when you try to make applicants vCAC 6.1 REST API calls of vCO 5.5.2 for the items in the catalog.  This same code works very well with the vCAC 6.0.1 plugin.

    Error:

    Data serialization error. (Workflow: Test vCAC remains / Scriptable task (item1) #24)

    Code:

    var point = {'@type': 'CatalogItemRequest',}

    "catalogItemRef": {"id": "3e6c3f13-6ea0-4da5-8bac-d8cb27e64f24"},

    "Organization": {"tenantRef": "vcacadmin"}

    {"subtenantRef": "e931debb-6200-40e5-89a7-01d35d0cc306"},

    "requestedFor": "[email protected]",

    "State": "SUBJECT."

    "requestNumber": 0.

    "requestData": {"items": []}

    {"key": "provider-blueprintId', 'value': {'type': 'string', 'value':"catalogItem.id"}}.

    {"key": "provider-provisioningGroupId', 'value': {'type':"string","value":"e931debb-6200-40e5-89a7-01d35d0cc306"}},

    {"key": "requestedFor', 'value': {'type':"string","value":"[email protected]"}},

    {'key': 'provider - VirtualMachine.CPU.Count', 'value': {'type': 'integer', 'value': 1}},

    {'key': 'provider - VirtualMachine.Memory.Size', 'value': {'type': 'integer', 'value': 1024}},

    {'key': 'provider - VirtualMachine.LeaseDays', 'value': {'type': 'integer', 'value': 0}},

    {"key": "provider-__Notes', 'value': {'type': 'string', 'value': 'Test'}},

    {'key': 'provider - VirtualMachine.Disk0.Size', 'value': {'type': 'string', 'value': '40'}},

    {{[{"key": 'provider - VirtualMachine.Disk1.Size', 'value': {'type': 'string', 'value': '8'}}]}}

    var catalogRest = vcac.createRestClient (vCACCAFEServicesEnum.CATALOG_SERVICE);

    var answer = catalogRest.post("consumer/requests",item);

    vCAC 6.0.x plugin expects a json object in the call to rest.

    6.1 plugin expects a value of json string.

    This will do the trick:

    var response = catalogRest.post ("consumer/queries", JSON.stringify (item));

  • Access catalog getting and setting using the REST API

    I have a catalog I can see through the user interface which allows members to add in the tab share read-only, read/write or full control of the vCD. They do not appear anywhere that I can find when obtaining the catalog through the REST API.

    The REST API of 1.5 of vCloud Director documentation indicates that it supports the getting or setting user access to catalogs by using the link "conrolAccess". This link does not appear in the response to a GET the href of the catalog (admin or his substitute). Attempted to add "/ controlAccess" HREF catalogue translated by RESOURCE_NOT_FOUND.

    Hello

    Could be a bug in the documentation, try like this

    https://cloud/api/org/org-uuid/catalog/catalog-uuid/controlAccess - Fetch (GET)

    https://cloud/api/org/org-uuid/catalog/catalog-uuid/action/controlAccess - updated (AFTER)

    Kind regards
    Rajesh Kamal.

  • Updated filter shared via the REST API

    Hello I'm trying to update a shared API filter. I'm using PHP and client fredsakr/eloqua-php-application · GitHub.

    So far, I was able to retrieve the filter with the following call:

    <?php
    require('./eloquaRequest.php');
    $eloquaRequest = new EloquaRequest('site', 'User.Name', 'password', 'https://secure.eloqua.com/API/REST/1.0');
    $response = $eloquaRequest->get('assets/contact/filters?search=TheFilterName&depth=complete');
    print_r($response);
    ?>
    

    I can see the filter in the answer below:

    (
        [type] => ContactFilter
        [currentStatus] => Active
        [id] => 100761
        [createdAt] => 1380137168
        [createdBy] => 48
        [depth] => complete
        [folderId] => 1036
        [name] => TheFilterName
        [updatedAt] => 1383589417
        [updatedBy] => 48
        [count] => 254382
        [criteria] => Array
            (
                [0] => stdClass Object
                    (
                        [type] => ContactFieldCriterion
                        [id] => 1912
                        [condition] => stdClass Object
                            (
                                [type] => TextSetCondition
                                [operator] => in
                                [optionListId] => 193
                            )
    
                        [fieldId] => 100012
                    )
    
            )
    
        [lastCalculatedAt] => 1380137190
        [scope] => global
      statement] => 1912
    

    What I want to do is update that corresponds to the values of 'Compare the Contact fields' in the GUI Eloqua under Contact = > Shared Library = > Contact filters.

    Looks like he has the "[type] = ContactFieldCriterion" under the [criteria] field in the response.

    I'd get how this value in a call to REST, and also how I would update it.

    Please let me know if you need more details on this issue. Please help and thank you.

    After some research I found what I wanted to do has been updated the list of options for this filter. See http://topliners.eloqua.com/docs/DOC-3588 for documentation on the base object. But I had difficulty in updating an OptionList with the Rest API using PUT. If you can help, please visit http://topliners.eloqua.com/message/36739#36739 . Thank you.

  • How to recover Contacts using ContactGroupID using SOAP or RESTFul API in c#?

    Hi guys,.

    I want to recover contact records from Eloqua 10 using ContactGroupID or by using the SOAP API or RESTFul API in c#. Well want to, help me for the same thing.

    Thanking you,

    Kind regards

    Dhaval Doshi.

    Hi Alain,

    You can use the bulk API to export contacts who are members of a segment or group. Documentation is available at the following address: Eloqua bulk API 1.0: importing and exporting data

    Hope this helps and please let me know if you need more information.

    Thank you

    Fred

  • There the rest APIs to retrieve the metadata for entity for eloqua objects?

    There is a list of all the objects that are accessible by the REST for CRUD in this link: REST API - Documentation for kernel objects in the objects of the core section.

    For each of the objects listed in the objects of the core section are there is a metadata field in the Properties section.

    For example, for the purpose of the e-mail message, The REST API - to access Emails , under the Properties section, there entered corresponding to the fields of the object of the emails under the
    Name, Type, Description and validation topics.

    Is there a REST API to retrieve the same information, i.e. metadata field for an object programmatically eloqua?
    Otherwise, this is a serious obstacle to building systems that are the metadata engine and support for SOAP is removed...

    The closest to what you are looking for would be endpoints of assistance for a description of the fields. Example of /api/bulk/1.0/contact/fields

    {

    "items": [{}

    'name': "E-mail address",

    "internalName": "C_EmailAddress",

    'dataType': 'emailAddress;

    'hasReadOnlyConstraint': false,

    'hasNotNullConstraint': false,

    'hasUniquenessConstraint': true,

    'Déclaration': '{{Contact.Field (C_EmailAddress)}}.

    "uri": "/ contact/field/100001",

    "converted': ' / Date (-2208970800000) /"

    'updatedAt': ' / Date (-2208970800000) / ".

    },

    {

    'name': "First name",

    "internalName": "C_FirstName",

    'dataType': "string",.

    'hasReadOnlyConstraint': false,

    'hasNotNullConstraint': false,

    'hasUniquenessConstraint': false,

    'Déclaration': '{{Contact.Field (C_FirstName)}}.

    "uri": "/ contact/field/100002."

    "converted': ' / Date (-2208970800000) /"

    "updatedBy": "MgrzzzOracleCloudSupportP01E10",

    'updatedAt': ' / Date (1408993722380) / ".

    },.....

    If so, it will also include an element "defaultValue". How many characters you can store in a field (precision) is documented here: Type of data (data and Digital Formats). The same endpoint exist in bulk 2.0, and there are variants for the account fields and Objetpersonnalise. Another exists in the REST through Api/rest/2.0/assets/contact/fields?depth=complete... It does not include the declaration of ML, but there other useful information such as the type of default update and a flag 'isAccountLinkageField '.

    Similarly, if you describe a form via SOAP or REST, it also will give you the fields and their type.

    Kind regards

    Bojan

  • REST API - the internal names of the fields in the custom object

    Hello

    We have an old system that uses the SOAP API and I'm rewritten with the REST API. Before, with SOAP, you identify the fields object personalized with their internal names. Therefore, our system and stored that names in its database. Now, I'm facing a problem. as the REST API does not provide the internal names for the fields in the custom object, as their full names and IDs. Am I wrong? Is it possible to get the internal names through REST? I found, you can get this internal names through the API as a WHOLE, but is there really no way to get them using REST? It seems strange to me and I don't want to use in BULK as there limits for requests per day.

    Hi Marc,

    In bulk API endpoints are the best way to retrieve the details field you are looking for.  Calls to retrieve this detail do not count against the daily API limits for the bulk API.

  • REST api call for the properties of the object in the html bridge provides resource not found (404) error.

    Hello

    I added a bridge Html summary view to our existing plugin (which is in Flex). The html page is displayed in the Summary tab with static data like images and titles. But the .gestJSON of the REST api call fails with the error ' could not load resources: the server responded with a 404 (Not Found) status.

    I followed the bridge Html sample chassisB (chassis - summary.js and html) to create the new page.

    Web.XML of the user interface of the plugin is configured to map/rest / *. bean dataAccessController is defined in the bundle context.

    Java package has the DataAccessController same class as the DataAccessController chassisB class

    This is the URL that I see in the javascript debugger and call API is a failure for this url.  There is no error in the virgo.log.

    https:// /vsphere-client/webui_ui_ns/rest/data/properties/323de5b9-4D2E-4dd7-ae32-98277dd44e90%252Fmf8k-h38?properties=name,model,version < vcenter ip >

    webui_ui_ns-client/vSphere is the value of Web-ContextPath in the plugin MANIFESTO. MF

    I spent a lot of time to understand the issue, but no luck. What I'm doing wrong here? Any help is appreciated.

    version of vCenter server appliance 6.0.0

    SDK - vSphere SDK Web 5.5.0

    1.7.0_79 64-bit JDK

    Thank you

    Deepa

    It was a configuration problem. I missed the tag in the bundle context of spring.

    After you add the 2 lines, it worked.

    Thanks for your time.

  • CPO 3.0 call a REST API

    I try to call a remote REST API that returns a JSON object.

    The call browser API looks like this

    http://IPAM-dev/phpipam/API/?app_id=API&controller=sections&action=read&ID=6

    Returns

    {'success': true, 'data': {'id': '6', 'name': "Telford subnets", 'description': '',' masterSection': '0', 'permissions': "{\"4\":\"1\ ""} strictMode ',' ': '1', 'subnetOrdering': null, 'order': null, "editDate": null, "showVLAN": '0', 'showVRF': '0' "}}

    When I try to use the OPC Web HTTP Request activity it fails with the following error

    Unable to send a content-body with this type of verb.

    I think the problem here is the content type. The default is application/xml; charset = utf - 8 in the activity, I tried to change this text, html and json, but still did not work. I can't let the emty content type in the activity.

    Anyone have any suggestion how to make a REST of CPO call using the activity Web HTTP request

    Try to change GET to POST (in the form of CALL-CPO_REST - RQ.png).  Sends the contents of the body generally requires a POST not a GET.

  • Expose REST APIs on the API Oracle Gateway

    Hi all

    Can someone help me to OAG. I'm new on this.

    I want to expose some REST API of gateway API as well as Oracle are accessible on mobile phones and browsers.

    An example or a document for this help

    Thank you

    Laetitia

    What version of Oracle application Gateway you use, if you use of the OAG version 11.1.2.4.0 then you need to install the hotfix.

    Please see this document on the oracle support: Doc ID 2070998.1

    Kind regards

    Anshul

Maybe you are looking for

  • AutoCorrect two languages

    I have text in English and in Spanish on a regular basis, is it possible that I can add the two languages of auto correct without having to change the keyboard each time?

  • Sound and mouse not working not not on the Satellite

    I don't remember if the sound has already worked on this laptop? but it doesn't now ether of the built-in speaker or a set of headphones. I went through the troubleshooting and the chect every bit but no luck. I think it's the realtrek driver but I'm

  • Other functions once the Tablet is plugged into the docking station

    The title explains pretty much everything that. I'd love to affect the application of IR remote by default once I put my tablet in my docking station.Because now I can only select the clock... that makes no sense in my opinion cuz u already have a cl

  • Help will not work with the new update of Vista

    Automatically made an update earlier this week, and now when I click on the button help (?) on any 2007 Office application I asked to open XML that I opened. Beyond the questions of formatting, it's broken links to non-related topics. MS Office help

  • EA6350 not accept the password "admin" little matter I have reset the router device.

    Hello I just brought a new EA6350 router and it does not accept the 'admin' to connect to the router. I have reset the router and can ping 192.168.1.1. Also able to enter in the login screen. But the default password: admin has not been the success y