AML search to return only the count of object corresponding

Hi community,

I have a request to get from an AML request only the number of item corresponding to the AML request.

In Odata and SQL it is ok but I cannot find the equiavlent.

I precise that I do not want to create a method to count the items from a tab.

For example I want to get the number of the Parts with status = Draft

Best regards,

Hadrien

  • Hello Hadrien,

    You can do AmlResponse.getItemCount(), to get count of items in AML response that you receive. Alternatively of you just want to get count it would be safe to use SQL. SQL is not recommended for Create,Update and Delete operations but for Read its safe.

  • Hi Jayrajvh,

    Your answer need to write a method to use AmlResponse.getItemCount() and it implies to get a response with all objects with at list the ID...

    I want launch a SOAP request from outside Aras and just get an max item number as reply.

    For SQL, yes it's works fine... But for security reason, no access rights to data we prefere not to use it.

    ==> I found a way to do this ! Not really nice but anyway it works.

    You can use pagination with pagesize='1' and in the answer you get pagemax but also a itemmax !

    And in the reply you find :

    Best regards,

    Hadrien

  • This is innovative. I liked this approach.

  • ;) this is because I am not a dev ;) Thanks for you help !

  • Now as the details are very clear, I can suggest one more approach - use generic method as Action.

    Write server side method in ARAS 'getItemCountFromItemType' in ARAS which can accept parameter as <ItemTypeName> and return only the total count of items. 

    Above code resides in ARAS.

    Externally you can just send a SOAP request with below AML

    <AML>
       <Item type="user" action="getItemCountFromItemType">
       <ItemTypeName>user</ItemTypeName>
       </Item>
    </AML>

    This will return only total count of users.

  • Yes :) it can work also thanks. Since we have a lot of parameter with effectivity dates etc. We want to do the everything with an external soap action. But I keep in mind the getItemCount

  • New way to answer to this

    Here an example with Apply Item + countOnly

    <AML>
      <Item type="Part" action="get" select="id,_status,_authoring_tool" returnMode="countOnly">
        <generation condition="ge">1</generation>    
          <_status>
            <Item type="_status" select="id" action="get">
              <_name>Opened</_name>
            </Item>
          </_status>
       </Item>
    </AML>

    Aras répond

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="">schemas.xmlsoap.org/.../">
      <SOAP-ENV:Body>
        <Result />
        <Message>
          <event name="pagemax" value="1" />
          <event name="itemmax" value="48" />
          <event name="items_with_no_access_count" value="0" />
        </Message>
      </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

    It works better in particular if it returns 0 => 30% faster

    Best regards,

    Hadrien

  • This is cool. They have introduced new attribute returnMode