What is the logic between items of ParamsGetMObjects.mObjCriteriaList?

Anonymous
Not applicable

What is the logic between items of ParamsGetMObjects.mObjCriteriaList?

Hi all,

When creating 2 or more items to ParamsGetMObjects.mObjCriteriaList, what is the logical relation between the criteria? Someone told me that 'When you supply multiple Ids, we OR them.  It is an AND when other criteria are supplied' before.

But when my list contains 2 items
with the same field name, it doesn't work. E.G. 'Id > 3' and 'Id < 8'.
I want to get the records with Id 4, 5, 6,and 7, but the results also contain 1, 2, and 3. When I set 'Id > 3' after 'Id < 8' in the list, the results contain all records 'Id > 3', and many have a Id greater than 8.

When my filter is 'Id = 3 and Id = 8', in the logic above it means two records would be returned with Id 3 and 8, and in SQL Server logic it means nothing. But when I call API getMObjects(), I get record only Id = 8.

Is there anything I miss?

Best Regards,
Biao
Tags (1)
6 REPLIES 6
Anonymous
Not applicable

Re: What is the logic between items of ParamsGetMObjects.mObjCriteriaList?

This documentation might help you locate the right answer:

http://developers.marketo.com/documentation/soap/getmobjects/

What it appears you are attempting to do is create an if->then logic step with compound statements.  This is not how this appears to be handled with API calls. 

There are not <,>,== operators available, you will need to set multiple criteria.  I.E. criteria1 and critera2.

I am not sure what language you are using, but look at the example code provided and I hope it clears this up for you.  You need to set multiple criteria variables, and then set those criteria into an array. 

Hope that helps!

Thanks,
James
Anonymous
Not applicable

Re: What is the logic between items of ParamsGetMObjects.mObjCriteriaList?

Hi James,

I use >,<,= just for example.
My parameter in my request is as follow:

  • <mObjCriteriaList>
  •         <mObjCriteria>
  •           <attrName>Id</attrName>
  •           <comparison>GT</comparison>
  •           <attrValue>3</attrValue>
  •         </mObjCriteria>
  •         <mObjCriteria>
  •           <attrName>Id</attrName>
  •           <comparison>LT</comparison>
  •           <attrValue>8</attrValue>
  •         </mObjCriteria>
  •       </mObjCriteriaList>
But Ids of some results are out of the range (3, 8).

Thanks,
Biao
Kenny_Elkington
Marketo Employee

Re: What is the logic between items of ParamsGetMObjects.mObjCriteriaList?

Hey Biao,

Could you provide the full text of the Request and Response for your query?  Feel free to sanitize any sensitive data.
Anonymous
Not applicable

Re: What is the logic between items of ParamsGetMObjects.mObjCriteriaList?

Hi Kenny,

I have 4 records in OpportunityPersonRole.
when I try to get records that Id is 2 and 3, I send a request that Id is greater than 1 and less than 4 as following:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Header>
        <AuthenticationHeader xmlns="http://www.marketo.com/mktows/">
            <mktowsUserId xmlns="">latticeenginessandbox1_9026948050BD016F376AE6</mktowsUserId>
            <requestSignature xmlns="">7bd4bbc7b5bc16e86943c29d1d5ccf6540c09b12</requestSignature>
            <requestTimestamp xmlns="">2014-01-26T02:53:21Z</requestTimestamp>
        </AuthenticationHeader>
    </soap:Header>
    <soap:Body>
        <paramsGetMObjects xmlns="http://www.marketo.com/mktows/">
            <type xmlns="">OpportunityPersonRole</type>
            <mObjCriteriaList xmlns="">
                <mObjCriteria>
                    <attrName>Id</attrName>
                    <comparison>GT</comparison>
                    <attrValue>1</attrValue>
                </mObjCriteria>
                <mObjCriteria>
                    <attrName>Id</attrName>
                    <comparison>LT</comparison>
                    <attrValue>4</attrValue>
                </mObjCriteria>
            </mObjCriteriaList>
        </paramsGetMObjects>
    </soap:Body>
</soap:Envelope>

But the response contains 3 records, the Ids are 1, 2, and 3, which means that the first mObjCriteria doesn't work but only the last one works. The response text is as following:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.marketo.com/mktows/">
    <SOAP-ENV:Body>
        <ns1:successGetMObjects>
            <result>
                <returnCount>3</returnCount>
                <hasMore>false</hasMore>
                <newStreamPosition>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</newStreamPosition>
                <mObjectList>
                    <mObject>
                        <type>OpportunityPersonRole</type>
                        <id>1</id>
                        <attribList>
                            <attrib>
                                <name>ExternalCreatedDate</name>
                                <value>2014-11-15T00:00:00-06:00</value>
                            </attrib>
                            <attrib>
                                <name>IsPrimary</name>
                                <value>1</value>
                            </attrib>
                            <attrib>
                                <name>OpportunityId</name>
                                <value>1</value>
                            </attrib>
                            <attrib>
                                <name>PersonId</name>
                                <value>1</value>
                            </attrib>
                            <attrib>
                                <name>Role</name>
                                <value>10</value>
                            </attrib>
                        </attribList>
                    </mObject>
                    <mObject>
                        <type>OpportunityPersonRole</type>
                        <id>2</id>
                        <attribList>
                            <attrib>
                                <name>ExternalCreatedDate</name>
                                <value>2013-08-15T00:00:00-05:00</value>
                            </attrib>
                            <attrib>
                                <name>IsPrimary</name>
                                <value>1</value>
                            </attrib>
                            <attrib>
                                <name>OpportunityId</name>
                                <value>1</value>
                            </attrib>
                            <attrib>
                                <name>PersonId</name>
                                <value>1</value>
                            </attrib>
                            <attrib>
                                <name>Role</name>
                                <value>1</value>
                            </attrib>
                         </attribList>
                    </mObject>
                    <mObject>
                        <type>OpportunityPersonRole</type>
                        <id>3</id>
                        <attribList>
                            <attrib>
                                <name>OpportunityId</name>
                                <value>5</value>
                            </attrib>
                            <attrib>
                                <name>PersonId</name>
                                <value>5</value>
                            </attrib>
                            <attrib>
                                <name>Role</name>
                                <value>5</value>
                            </attrib>
                        </attribList>
                    </mObject>
                </mObjectList>
            </result>
         </ns1:successGetMObjects>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Thanks,
Biao
Anonymous
Not applicable

Re: What is the logic between items of ParamsGetMObjects.mObjCriteriaList?

Hi Kenny,

In last example, I tried to exchange the order of the two mObjCriteria. The (Id, LT, 4) is at the front of (Id, GT, 1) as following:

            <mObjCriteriaList xmlns="">
                <mObjCriteria>
                    <attrName>Id</attrName>
                    <comparison>LT</comparison>
                    <attrValue>4</attrValue>

                </mObjCriteria>
                <mObjCriteria>
                    <attrName>Id</attrName>
                    <comparison>GT</comparison>
                    <attrValue>1</attrValue>

                </mObjCriteria>
            </mObjCriteriaList>


Then I also got 3 records, but the Ids are 2, 3, and 4. It seems that only the last mObjCriteria works.
But the correct result should only contains records which Ids are 2 and 3 (be GT 1 and LT 4).

Any suggestions?

Thank you very much,
Biao

Anonymous
Not applicable

Re: What is the logic between items of ParamsGetMObjects.mObjCriteriaList?

Hi All,

We too face the similar problem. 

Can someone from Marketo reply with the correct behavior of Marketo in case of mObjCriteria.